パスワードなしでsshログインをする
sshログインはデフォルトのまま利用するとユーザー名とパスワードだけでログインできてしまう。 これでは誰でもログイン可能なので、ログイン方法をパスワードではなく、公開鍵認証に変更する。
ローカルのマシンで、
$ cd ~/.ssh $ ssh-keygen -C "" Enter file in which to save the key (/Users/home_dir/.ssh/id_rsa):
と出てくるのでsshキーの保存先のファイルを指定する。
-Cオプションを指定しなければ末尾に生成元のユーザー名@ホスト名
が付与されてしまうので、-C ""
で消す。
もちろん、ここでコメントを書いてもよい。
sshキーの生成が終わると指定した保存先に秘密鍵と、同じディレクトリに.pub
という拡張子のファイルに公開鍵が生成されている。
$ pbcopy < ~/.ssh/id_rsa.pub(公開鍵のファイル)
リモートサーバーに.ssh
がなければ作る。
$ mkdir ~/.ssh/authorized_keys
Ubuntuであればもともと~/.ssh/authorized_keys
が存在する。
このauthorized_keysに先程pbcopy
でクリップボードにコピーした公開鍵を貼り付け保存する。
一回セッションを切断するために、ローカルサーバーからexitしターミナルを閉じる。
再度ターミナルを立ち上げ、リモートサーバーにsshログインする。
$ ssh-add ~/.ssh/id_rsa(秘密鍵のファイル)
これで
$ ssh user_name@IP_address
すると、パスワードを要求されずに、sshログインできるようになる。 ログイン元のローカルサーバーで秘密鍵と公開鍵を生成し、ログイン先のリモートサーバーに公開鍵を渡せば、パスワードなしのsshログインが可能になる。