• ..

Shell

    ssh できるようにする

    ローカル側

    まずはsshするときに使う鍵を作ります。これにはssh-keygenコマンドを使います。

    # ~/.ssh/test/id_rsa に置きたいので作っておきます。
    mkdir ~/.ssh/test
    
    ssh-keygen -f ~/.ssh/test/id_rsa -N '' -t rsa -b 4096 -m PEM

    ssh-keygenには5つオプションを渡していますが、これはそれぞれ

    • -fは鍵のベース名
    • -Nは鍵のパスワード
    • -tは鍵のタイプ
    • -bは鍵のサイズ
    • -mは鍵の形式(よく分かってません)

    を指定します。2019年2月ぐらいからこの-m PEMというオプションを付けないと-----BEGIN OPENSSH PRIVATE KEY-----と出力されてしまいうまくsshできないようなので付けるように覚えないと駄目みたいです。
    ちなみにこのオプションを付けるとそれ以前と同じように-----END RSA PRIVATE KEY-----で出力されます。

    これで~/.sshディレクトリにmy-key(秘密鍵)とmy-key.pub(公開鍵)ができたはずです。

    そして、その公開鍵をコピーします。

    cat ~/.ssh/test/id_rsa.pub | tr -d '\n' | pbcopy 

    tr -d '\n'で最後の改行を消す必要があります。(ハマった)

    リモート側

    使いたいユーザーの~/.ssh/authorized_keysにコピーしたものを貼り付けます。

    # .ssh ディレクトリを作る
    mkdir ~/.ssh
    # パーミッションを 600(自分だけが読み書き実行できる) に
    chmod 700 ~/.ssh
    
    # authorized_keys を作る
    touch ~/.ssh/authorized_key
    # パーミッションを 600(自分だけが読み書きできる) に
    chmod 600 ~/.ssh/authorized_key

    接続できるか確認

    以下のようなコマンドで接続できれば完了です。

    ssh -i ~/.ssh/test/id_rsa <user>@<host>
    # [<user>@ip-<host> ~]$