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
  • 鍵名をきかれたとき、単にファイル名だけをいれるとカレントディレクトリにファイルが書き出される。

鍵の生成(PuTTY Key Generator)

鍵の生成

  • 最近のバージョンではRSA(2048)が標準。

秘密鍵の保存

  • 秘密鍵はクライアントによって形式がことなる。
  • 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で保存するとダメ。
    save.png

鍵の変換(ssh-keygen)

秘密鍵からパスフレーズを削除

  • 以下のコマンドで実行。rsa形式の場合
    # openssl rsa -in <元の秘密鍵ファイル> -out <変換後の秘密鍵ファイル>
  • dsa形式の場合
    # openssl dsa -in <元の秘密鍵ファイル> -out <変換後の秘密鍵ファイル>

秘密鍵から公開鍵を生成する方法

  • ssh-keygenコマンドを作成する。最後は秘密鍵名
    ssh-keygen -y -f <秘密鍵名>

鍵の変換(Putty)

  • puttyを使った鍵の変換はPutty

公開鍵のサーバーへの登録

  • 作成した.pubファイルをサーバーの~/.sshのauthorized_keysに追記する。
  • 追記する際エディタのコピペすると改行部分の扱いなどで失敗することがある。
  • FTPなどを利用して.pubファイルを転送後、サーバー上でファイルを追加したほうが良い。

Tips

sshコマンド

パスフレーズを確認

  • How do I verify/check/test/validate my SSH password? - Stack Overflow
  • ssh-keygenで確認できる
    ssh-keygen -f /tmp/my_key
    • 正解だった場合: 秘密鍵を読み込み関連する公開鍵を表示
    • 間違いだった場合: load failedが表示される。
    • パスフレーズが設定されていない場合、関連する公開鍵が即座に表示される。

~/ssh/configを使う

指定コマンドしか実行できない設定

Macの特殊事情

パスフレーズの入力に関して

  • Macの場合パスフレーズ認証するとその内容がキーチェインに保存されるためパスフレーズを再度入力する必要がない。再度入力したい場合、キーチェインアクセスを起動し、SSH:/Usersの内容を探して削除したあと、ssh-agentプロセスを再起動すればよい。

秘密鍵の使い分け

  • 同一ホストに対する秘密鍵が複数存在しても適切に使い分けてくれない場合、~/.ssh/configに IdentitiesOnly yes を追加するとうまくいくかも。ssh-agentに保持されている鍵情報じゃなくてファイルを使ってくれるようになるらし。

トラブルシューティング

なぜかログインできない!!

  • vつきで実行してみる。
    ssh -vvv ホスト
  • サーバーの.sshおよびauthorized_keysのパーミッションのチェック(700/600)。
  • authorized_keysへの公開鍵ファイルの内容のコピペミスチェック(特にエディタの改行まわり)。

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にないとみてくれない。

添付ファイル: filesave.png 998件 [詳細] fileselect.png 933件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-05 (木) 14:23:42