読者です 読者をやめる 読者になる 読者になる

公開鍵

Linux

■公開鍵の作成・設定(説明付ver)  
 ファイルの送信等で、パスワードなしで情報のやり取りをする場合に、
 公開鍵を接続元と接続先のサーバに設定する。
 ※以下<>の中身は、サーバ・プロジェクトにより異なる
 ※[接続元サーバ]と[接続先サーバ]を読み間違えないよう気をつける!
 
【概要】
  [接続元サーバ]で公開鍵(/root/.ssh/id_rsa.pub)を作成し、
  [接続先サーバ]の/home/<接続を許可するユーザ名>/.ssh/authorized_keysに、
  [接続元サーバ]で作成した/root/.ssh/id_rsa.pubの中身を追記する。
 
 1.接続元のサーバで公開鍵を作成する
  [接続元サーバ]
  ①/root/.ssh/配下にid_rsa.pubファイルを作成する。
   # ssh-keygen
  
   ※ コマンド実行後に対話形式で質問が出るが、今回は全てEnterを押下した。
  
  
 2.公開鍵が作成されたことを確認する
  [接続元サーバ]
   # ls -la /root/.ssh/
  
    ※ /root/.ssh/は隠しディレクトリのため、lsのオプションに-aを付ける
  
   # cat /root/.ssh/id_rsa.pub
    例)ssh-rsa AAAA(略) root@<接続元ホスト名>
  
  
 3-1.接続先サーバに公開鍵の記述をコピーする(scp通信できる場合 通信できない場合は3-2へ)
  [接続元サーバ]
   ①失敗してid_rsa.pubが消失するリスクを避けるため、/tmp配下にコピーする
    # cp -p /root/.ssh/id_rsa.pub /tmp
  
   ②[接続先サーバ]に公開鍵をコピーする
    # scp /tmp/id_rsa.pub <接続を許可するユーザ名>@<接続先ホスト名>:〈任意のディレクトリ〉
  
    例)scp /tmp/id_rsa.pub store@server1:/home/store
    ※例では 接続を許可するユーザ名:store
             接続先ホスト名:server1
             任意のディレクトリ:/home/store
      以下、この例のユーザ名・ホスト名を使用して記述する
            
   ③/home/<接続を許可するユーザ名>にコピーされたことを確認する
    # ssh store@rserver1 'ls -la /home/store/'
   
   ④公開鍵設定前に[接続先サーバ]の/home/<接続を許可するユーザ名>/.ssh/authorized_keysの中身をログに残す
    # ssh store@rserver1 'cat /home/store/.ssh/authorized_keys'
   
    ※/home/<接続を許可するユーザ名>/.ssh/authorized_keysが存在しない場合ディレクトリ・ファイルを作成する
   
   ⑤[接続先サーバ]の/home/<接続を許可するユーザ名>/.ssh/authorized_keysに
     [接続元サーバ]の/root/.ssh/id_rsa.pubの中身を追記する
    # ssh store@rserver1 'cat /home/store/id_rsa.pub >> /home/store/.ssh/authorized_keys'
   
    ※リダイレクト「>>」:追記
                  「>」:上書き
       今回は追記なので、「>>」と2個の記号を書くこと!!
      
   ⑥[接続先サーバ]の/home/<接続を許可するユーザ名>/.ssh/authorized_keysの中身を確認
    # ssh store@rserver1 'cat /home/store/.ssh/authorized_keys'
     
   ⑦[接続先サーバ]に最初にコピーした公開鍵を削除する
    # ssh store@rserver1 'rm /home/store/id_rsa.pub'
   
    ※/home/store/:3-1-②の任意のディレクト
   
   ⑧[接続先サーバ]からコピーした公開鍵が削除されたことを確認する
    # ssh store@rserver1 'ls -la /home/store/'
   
 
 3-2.接続先サーバに公開鍵の記述をコピーする(scp通信できない場合)
  [接続元サーバ]
   ①公開鍵の中身をログに残す(2.で実施済み)
    # cat /root/.ssh/id_rsa.pub
   
  [接続先サーバ]
   ②/home/<接続を許可するユーザ名>/.ssh/authorized_keysの中身を確認する
    # cat /home/<接続を許可するユーザ名>/.ssh/authorized_keys
   
    例)cat /home/store/.ssh/authorized_keys
    ※例では 接続を許可するユーザ名:store
      以下、この例のユーザ名を使用して記述する
     
   ③[接続先サーバ]の/home/<接続を許可するユーザ名>/.ssh/authorized_keysに
     [接続元サーバ]の公開鍵の中身を追記
    # vi /home/store/.ssh/authorized_keys
   
    ※3-2-①で残した公開鍵の中身のログをコピペして追記
   
   ④/home/<接続を許可するユーザ名>/.ssh/authorized_keysに公開鍵が追記されたことを確認する
    # cat /home/store/.ssh/authorized_keys
   
   
 4.[接続元サーバ]から[接続先サーバ]にSSH通信をし、パスワードが要求されないことを確認する
  [接続元サーバ]
   # ssh <接続を許可するユーザ名>@<接続先ホスト名>
  
    例)ssh store@server1