sshでLinuxサーバーにログインする際に、パスワードを聞かれますよね。
これをパスワード省略でログインしたいことがあります。
今回、公開鍵を交換する方法でパスワードなしでログインする方法を調査しました。
公開鍵、秘密鍵の作成と事前設定
やりたいことはこんなことです。
これを実現する方法を調べてみました。
まず、ログインする側のサーバーAで公開鍵と秘密鍵を作成します。
ユーザーXXXのホームディレクトリで以下のコマンドを実行します。
1 |
$ ssh-keygen -t rsa |
結果として、以下のように秘密鍵と公開鍵が作成されました。
秘密鍵 /home/xxx/.ssh/id_rsa
公開鍵 /home/xxx/.ssh/id_rsa.pub
次に、ログインされる側のサーバーBのユーザーYYYに、作成した公開鍵を登録します。
YYYのホームディレクトリにて、.sshというフォルダを作成し、.ssh/authorized_keysというファイルを作成します。
authorized_keysの中身は、
/home/xxx/.ssh/id_rsa.pub
をそのままコピペしておきます。
1 2 3 |
$ mkdir .ssh $ chmod 700 .ssh $ vi .ssh/authorized_keys |
注意点として、.sshのディレクトリの権限を必ず
1 |
drwx------ |
にしておく必要があります。
このように設定しておかないと、パスワードなしでログインすることが出来ません。
sshdの設定
次に、サーバーBでsshdの設定を行います。
rootユーザーで、/etc/ssh/sshd_configを開きます。
1 2 3 4 5 6 7 8 |
・・・ #RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ・・・ |
このようになっていた場合、コメントをはずしておきます。
1 2 3 4 5 6 7 |
・・・ RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ・・・ |
ちなみに、外部の識者からご指摘をいただきましたが
OpenSSH 7.4では
RSAAuthentication yes
は不要らしいです。
以下のサイトを参照。
・https://qiita.com/mogya/items/7f4a765a22e7e881dae5
以下のコマンドで、sshdを再起動します。
CentOS 6の場合
1 |
# service sshd restart |
CentOS 7の場合
1 |
# systemctl restart sshd.service |
パスワードなしでLinuxサーバーにsshログインできるか試してみる
サーバーAのユーザーXXXにて以下のコマンドを実行してみます。
1 |
$ ssh -l ユーザーYYY (サーバーB) |
これで無事にノンパスワードでsshログイン出来ることが確認できました。
さくらのVPSサーバー
↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ
SSDプランが月々685円から使える!さくらのVPS
コメント