その他
    ホーム 技術発信 DoRuby パスフレーズなしでSCP(秘密鍵の場合)

    パスフレーズなしでSCP(秘密鍵の場合)

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    パスフレーズなしでSCPをする方法としてはssh-agentを使う方法や、 秘密鍵を使う方法がありますが、今回は後者の秘密鍵を使う方法をご紹介します。

    まず転送先のサーバで秘密鍵と公開鍵を作成します。
    ここでポイントなのが秘密鍵はパスワードなしで作成するということ。
    パスワードなしでも秘密鍵自体を盗まれなければ危険はありません。

    (転送先での作業)
    $ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hoge/.ssh/id_rsa):
    Created directory ‘/home/hoge/.ssh’.
    Enter passphrase (empty for no passphrase): (未入力でEnter)
    Enter same passphrase again: (未入力でEnter)
    Your identification has been saved in /home/hoge/.ssh/id_rsa.
    Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
    The key fingerprint is:
    6e:f3:a4:af:aa:84:9f:d3:b2:92:84:69:34:10:21:b9 hoge@scp-to

    次に作成した公開鍵(id_rsa.pub)を転送元に設定します。
    ※安全のため、公開鍵を設定するauthorized_keys2のパーミッションは、所有者に対しては read/write を許可し、他のユーザーには、アクセスを許可しないで下さい。

    (転送元での作業)
    $ vi ~/.ssh/authorized_keys2
    ### id_rsa.pubの内容をコピペ ###
    ssh-rsa ****************************
    $ chmod 600 ~/.ssh/authorized_keys2

    これでパスフレーズなしでSCPができるはずです。
    試してみます。

    (転送元での作業)
    $ echo “scp test” > /var/tmp/scp-test.txt
    $ scp /var/tmp/scp-test.txt hoge@scp-to:/var/tmp
    scp-test.txt 100% ****************************| 9 00:00

    できました!