概要
- できること
- ssh接続先の指定がIPアドレスではなく、自分で決めた名前で可能になる
- sshでのログイン時に、ユーザ/パスの入力が不要になる
- 想定する対象者
- Linuxとかsshとかあんまり慣れてません的な方
- とりあえず試してみたい方
- 想定作業時間
- 30分ぐらい?
想定する状況
ログイン先サーバ
IPアドレス | user | pass |
---|---|---|
192.168.0.1 | foo | 1234 |
接続元の想定
user |
---|
bar |
sshの基本操作
ssh 192.168.0.1
ログインユーザは接続元の端末の現在のユーザ名が使用される(みたい)
その後、パスワードを聞かれるので、接続先ユーザのパスワードを入力
-> ログイン失敗
接続先に対してbarユーザでログインを試みたため
たまたまbarユーザがいればログインできるかもしれないけど
ssh foo@192.168.0.1
IPアドレスの前にログインユーザを指定する
その後、パスワードを聞かれるので、接続先ユーザのパスワードを入力
-> ログイン成功
公開鍵使ってログインを楽にする
接続元での作業
<< 注意 >>
すでに誰かに設定してもらっているとかの場合はやめておきましょう。
設定を上書きする可能性があります。
ssh-keygenの実行
-
ssh-keygen
を実行。- いろいろ聞かれるけど、とりあえずすべて未入力で
Enter
- いろいろ聞かれるけど、とりあえずすべて未入力で
- すると
~/.ssh/
に下記の2ファイルが作成される-
id_rsa
:秘密鍵 -
id_ras.pub
:公開鍵
-
ssh-keygen補足
作成される鍵の名称は上記id_rsaがデフォルトとなるが
複数のサーバに接続することを考えるとよろしくない
(どれがどのサーバのものかわからなくなる)
接続先サーバのIPアドレスを指定するのが良いかも
~/.ssh/configの編集
-
~/.ssh/config
を下記の様に編集(なければ作成)-
Host
:sshコマンドで指定する名前。お好みで。 -
HostName
:IPアドレスを指定 -
User
:接続で使用するユーザを指定 -
Port
:ポート番号の指定がある場合などに指定
-
~/.ssh/config
Host target_server
HostName 192.168.0.1
User foo
Port 22
IdentityFile ~/.ssh/id_rsa
意味としては
-
ssh target_server
と実行すると -
192.168.0.1
のサーバの - ポート
22
番で - ユーザ
foo
で接続する - その際に使用する秘密鍵のファイルは
~/.ssh/id_rsa
接続先での作業
- ~/.ssh/authorized_keysの編集
-
~/.ssh/authorized_keys
に、上記接続元で作成したid_rsa.pub
の内容を追記する
-
接続元から上記設定を使用してログインしてみる
ssh target_server
-> ログイン成功、するはず