LoginSignup
5
7

More than 5 years have passed since last update.

パスワード無しでSSHログイン ( Windows / Mac / Linux 各クライアントから)

Posted at

クライアント側で鍵ペアを作成し、公開鍵をサーバに登録すれば、ログイン時にパスワードが不要になる。
毎度パスワードを入力する必要が無いため、安全面でのメリットも。

鍵ペア作成

クライアントがLinux/Macの場合

クライアント側で、DSA鍵を作成する。実行後、~/.ssh配下に秘密鍵(id_dsa)と公開鍵(id_dsa.pub)が作成される。


$ ssh-keygen
Generating public/private dsa key pair.
Enter file in which to save the key (/home/foo/.ssh/id_dsa): <- Enter
Created directory '/home/foo/.ssh'.
Enter passphrase (empty for no passphrase): <- Enter(パスフレーズなし)
Enter same passphrase again: <- Enter(パスフレーズなし)
Your identification has been saved in /home/foo/.ssh/id_dsa.
Your public key has been saved in /home/foo/.ssh/id_dsa.pub.
The key fingerprint is:
24:5a:b7:0b:4f:be:3a:e7:95:46:bd:54:23:04:20:55 foo@client
The key's randomart image is:
+--[ DSA 1024]----+
|      ..ooE..    |
|       .   .     |
|      o o   . o  |
|     o + . . o . |
|    . . S . o    |
|       = o o .   |
|        + + .    |
|      . .+       |
|      .=o        |
+-----------------+

クライアントがWindowsの場合

Gitをインストールすると、ssh-keygenのexeがあるのでそれを利用して、鍵を作る。
ssh-keygenにパスを通しておくこと。
以下、Git bash を利用。


$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (//.ssh/id_rsa): /c/Users/XXXXX/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in c:/Users/XXXXX/.ssh/id_rsa.
Your public key has been saved in c:/Users/XXXXX/.ssh/id_rsa.pub.
The key fingerprint is:
48:--:--:--:0b:bf:0a:fd:ff:--:--:--:--:--:--:-- XXXXX@YOUR SERVER NAME
The key's randomart image is:
+--[ RSA 2048]----+
|        略       |
+-----------------+

サーバへの登録

クライアントがLinux/Macの場合

ssh-copy-id コマンドが使える端末(大抵のLinux)なら、以下のようにするだけでOK。-p はポートフォワード等のケースで必要。


client$ ssh-copy-id -i ~/.ssh/id_dsa.pub -p 2205 user@server

Macの場合、適当なLinuxマシンからssh-copy-idをコピーしてくると動く。


hogelinux$ which ssh-copy-id
hogelinux$ scp {ssh-copy-idパス} user@mac:~/
mac$ mv ~/ssh-copy-id /usr/local/bin

クライアントがWindowsの場合

ssh-copy-id みたいな便利なやつが無いのでめんどくさい。
SSHクライアントからコピーした公開鍵を~/.ssh/authorized_keysに追加する。またauthorized_keysのパーミッションは600に変更する。
以下、WinSCP等で公開鍵をサーバのユーザホームにコピーしている前提。


server% mkdir .ssh
server% chmod 700 .ssh
server% cd .ssh
server% cat ~/id_dsa.pub >> authorized_keys
server% chmod 600 authorized_keys
server% rm ~/id_dsa.pub

参考サイト

"SSHサーバにパスワードなしでログインする方法":http://l-w-i.net/t/openssh/login_001.txt
"ssh-copy-idをmacで使う方法":http://qiita.com/narumi888/items/420cd97032500808af54

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7