脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

パスワード入力なしでssh接続する方法①(ssh-agent)

それぞれのサーバでやること

アクセス先のサーバでやること
  • 秘密鍵と公開鍵の作成
  • 公開鍵を認証リストに加える
  • アクセス元サーバに秘密鍵を渡す
アクセス元サーバ
  • アクセス先サーバから秘密鍵を受け取る
  • ssh-agentの起動
  • 秘密鍵をagentに登録する

実際の手順

アクセス先サーバ
cd ~/.ssh
ls -l
  total 4
  -rw------- 1 vagrant vagrant 389 Apr 21 01:21 authorized_keys # 認証リスト

# 鍵の発行
ssh-keygen -t rsa
  ...
  Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
  Enter passphrase (empty for no passphrase):
  Enter same passphrase again:
  Your identification has been saved in /home/vagrant/.ssh/id_rsa.
  Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
  ...

ls -l
  -rw------- 1 vagrant vagrant  389 Apr 21 01:21 authorized_keys
  -rw------- 1 vagrant vagrant 1675 Apr 21 03:31 id_rsa      # 秘密鍵
  -rw-r--r-- 1 vagrant vagrant  411 Apr 21 03:31 id_rsa.pub  # 公開鍵

# 公開鍵を認証リストに追加する
cat id_rsa.pub >> authorized_keys

# 認証リストのパーミッションを設定する
chmod 600 authorized_keys
アクセス元サーバ
cd ~
scp ${ユーザ名}@${アクセス先サーバ}:/home/vagrant/.ssh/id_rsa ~/.


# agentの起動
eval `ssh-agent`

# プロセスの確認
$ ps aux | grep agent
vagrant   2689  0.0  0.0  10612   316 ?        Ss   08:38   0:00 ssh-agent
vagrant   2709  0.0  0.1  11740   936 pts/0    S+   08:39   0:00 grep --color=auto agent

# 秘密鍵の登録
ssh-add id_rsa
  Identity added: id_rsa (id_rsa)

# 確認
ssh-add -l  

# 実際にsshアクセス
ssh ${アクセス先サーバ}
  Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)

   * Documentation:  https://help.ubuntu.com/
  Last login: Thu Apr 21 03:26:34 2016 from 192.168.33.1
    ### => パスワード入力なしでsshログインできた