秘密鍵と公開鍵
ssh-keygenコマンドで秘密鍵と公開鍵が生成される。
-t |
タイプ。自分はrsaしか使ったことがない。 |
-b |
バイト数? 4096が推奨されているらしい。 |
-C |
コメント。鍵の最後に付く。 |
-f |
秘密鍵のファイル名。公開鍵はこれに.pubが付いたものになる。 |
・オプションでファイル名を指定しない場合、コマンド実行時にデフォルトのファイル名で良いか訊かれる。
・パスフレーズを入力するとログインの度にそれを訊かれることになって面倒なので自分は入れない。設定しておくと万が一秘密鍵が流出した場合でも安心。
鍵を
~/.ssh/configに登録する。
生成した公開鍵を
ssh-copy-idコマンドで接続先サーバーに登録する。
使い方は
-hオプションを付けて実行すれば見られる。
次のように手作業でやってもいい(面倒くさいが)。
1.公開鍵をクリップボードにコピーする。
2.接続先サーバー側で公開鍵を
~/.ssh/authorized_keysに追記する。
踏み台サーバーを使ったログイン
普段使う研究室のサーバーには別のサーバーを経由しなければならない。パスワード入力がないとはいえ面倒くさいので自動的に目的のサーバーに入れるよう設定した。
このとき、公開鍵のファイル名は踏み台サーバーで使っているものと同じでなければならない。
つまり、踏み台サーバー(rainbow)からリモートサーバー(isotope2)へ入るための公開鍵がid_rsa_iso2.pubであった場合、ローカルサーバー(creed)からリモートサーバー(isotope2)へ入るための公開鍵もid_rsa_iso2.pubでなければならない。これがid_rsa_isotope2.pubなどとなっていると認識されずパスワードを要求される。
こちらでもローカルの公開鍵を接続先のサーバーに登録しておくこと。
Unable to negotiate with UNKNOWN port 65535
サーバーに接続しようとしたら次のようなエラーが出て失敗した。
よく分からないが、古いマシンだとこういうことがあるらしい。
次のように、~/.ssh/configの設定に「KeyAlgorithms」を追加した。
Warning: No xauth data; using fake authentication data for X11 forwarding.
ワークステーションから研究室のサーバーに入ろうとしたら標題のエラーが出た。入るときのコマンドは以下。
ssh -X akira@hostname
-Xを外すとエラーは無くなるが図が描けなくなる。
次の文を~/.ssh/configに加えたら解決した。
ForwardX11 yes