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

  
  
  
  


コメント