Tag: ネットワーク ssh
関連ページ†
- 公開鍵は相手ホストに渡す。秘密鍵は自分で持っておく。
秘密鍵のフォーマット†
鍵ファイルの形式はクライアントによってまちまちなので非常にわずらわしい。形式がわからなくなったときはテキストエディタで開くとわかるかも。
形式 | 対応クライアント | ファイルの特徴 |
OpenSSH形式 | UNIX系のsshコマンド | 鍵ファイルの先頭に「-----BEGIN RSA PRIVATE KEY-----」。ファイル名はid_rsaとかで作られることが多い。 |
SECSH形式 | Poderosa | 鍵ファイルの先頭に「---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----」。 |
Putty形式 | Putty | 鍵ファイルの先頭に「PuTTY-User-Key-File-2: ssh-rsa」。ファイル名は*.ppk |
鍵の生成(ssh-keygen)†
- ssh-keygenで生成。出力場所に注意(途中ファイル名を聞かれるので明示したほうがいいかも)。
ssh-keygen -t dsa|rsa
鍵の生成(PuTTY Key Generator)†
鍵の生成†
- 最初に鍵のタイプを選択する(右側にいくほど強固)。Generateボタンを押し鍵を生成する。
- Key passphraseとConfirm passphraseの欄にパスフレーズを入力する。
秘密鍵の保存†
- 秘密鍵はクライアントによって形式がことなる。
- Puttyで使う場合は、Actions → Save private keyで保存する。拡張子としてppkをつけておけば区別しやすいかも。
- Poderosaで使う場合は、[Conversions] → [Export ssh.com key]で保存する。拡張子は特にきまってないらしい。
- UNIX端末なので使う場合は、[Conversions]→[Export OpenSSH key]で保存する。
公開鍵の保存†
- OpenSSHが動いているLinuxサーバーに持って行く公開鍵は、Key → Public key for pasting to OpenSSH authorized keys file:の欄にある内容をコピーして使う。Save public keyで保存するとダメ。
鍵の変換(ssh-keygen)†
秘密鍵から公開鍵を生成する方法。†
- ssh-keygenコマンドを作成する。最後は秘密鍵名
ssh-keygen -y -f <秘密鍵名>
鍵の変換(Putty)†
Tips†
sshコマンド†
/ssh/configを使う†
指定コマンドしか実行できない設定†
Macの特殊事情†
パスフレーズの入力に関して†
- Macの場合パスフレーズ認証するとその内容がキーチェインに保存されるためパスフレーズを再度入力する必要がない。再度入力したい場合、キーチェインアクセスを起動し、SSH:/Usersの内容を探して削除したあと、ssh-agentプロセスを再起動すればよい。
秘密鍵の使い分け†
- 同一ホストに対する秘密鍵が複数存在しても適切に使い分けてくれない場合、~/.ssh/configに IdentitiesOnly yes を追加するとうまくいくかも。ssh-agentに保持されている鍵情報じゃなくてファイルを使ってくれるようになるらし。
トラブルシューティング†
なぜかログインできない!!†
Too many authentication failures for でログインできない†
Macでgit pullしてError: Permission denied (publickey)†
- まず原因を解明するために、remoteリポジトリへsshログインしてみる。
- ssh hogehoge でログインしてもhogehogeに該当する秘密鍵が一切表示されない。ssh-add -lで確認してもいっさい使われない。 SSH_AUTH_SOCKは設定されている。
- どうやら.ssh/configに該当するホスト名はエイリアス名ではだめで、そのもズバリのエントリがないとだめみたい。
- git clone foo:/myrepo したならば、fooがbarのエイリアスだったとしても、fooのエントリが.ssh/configにないとみてくれない。