頻出SSHメモ ~/.ssh/configと認証鍵まわりのこと

SSHはちゃんとconfigしておくと便利

SSHを使うときはちゃんとconfig書いておきなよ,って偉い人が言っていました.現在日常的に使えている範囲のことをメモしておきます.ほんの少し,簡単な記述を行うだけで手数が圧倒的に減ります.

これらの設定は,SFTPを利用する際にも適用されるので便利です.多段SFTPが必要なときは,他のひとの端末に以下の設定を仕込むことがあります.そのとき,端末の利用者はTransmit等のGUIのFTPクライアントを利用します.

sshと,~/.ssh/config

まったくプレーンなSSH

% ssh 192.168.0.1 -l username

自分の.ssh/configを編集

% emacs ~/.ssh/config

ホスト名のエイリアスとポートの指定

Host myserver
  HostName 192.168.0.1
  Port 22

% ssh username@myserver

ユーザー名も省略しちゃう

Host myserver
  HostName 192.168.0.1
  Port 22
  User username

% ssh myserver

多段SSH (よく言って踏み台)

Host myserver
  HostName 192.168.0.1
  ProxyCommand ssh humidaiuser@humidai nc %h %p

% ssh username@myserver

上の設定で,自端末でmyserverにSSHすると,暗黙でhumidaiuserでhumidaiサーバーにログインしてから,humidai経由でmyserverに接続されます.

client → humidai → myserver という経路になります.踏み台とか,カコイイ.

追記: sshを使いこなすための7つの設定 - 射撃しつつ前転 で紹介されてる内容が,目から鱗( Д ) ゚ ゚だったので,併せてURLを紹介しときます.コネクションの使い回しとか,認証鍵の指定とかいろいろ.

認証鍵の取り扱い周り

SSHする際のパスワード入力をサボれるようにすると,もっとラクになります.サーバー側のauthorized_keysに,自分の公開鍵を追加するだけです.取り扱いは自己責任で.

ssh-keygenとかssh-addとか,cat >> authorized_keysとか

id_rsa以外で認証鍵を作成

% ssh-keygen -f my_key

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my_key..
Your public key has been saved in my_key.pub.
The key fingerprint is:....

任意の認証鍵をssh-agentに追加

% ssh-add ~/.ssh/my_key

現在,ssh-agentが抱えている鍵を確認

% ssh-add -L

authorized_keysに公開鍵を追加
※誤って既存の鍵を壊してしまうことは防げるが,>が1つになると惨事になるので要注意

サーバーにmy_key.pubをあげておいて
% cat my_key.pub >> authorized_keys

または,クリップボードにいれておいて
% cat >> authorized_keys
(paste)