SSH関連の記事が増えてきたのでここまでの記事も含めてまとめ
~/.ssh/config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Host [設定名] HostName [SSH接続先] Port [ポート番号] User [ユーザ名] IdentityFile [鍵ファイル(あれば)]
// known_hostsのチェックをしない StrictHostKeyChecking no
// 多段 ProxyCommand ssh -W %h:%p [踏み台ホスト]
// サーバ側の応答確認(keep-alive) ServerAliveInterval 10
// 応答確認して応答が無い場合のリトライ回数(デフォルトは3) ServerAliveCountMax 5
// 接続時にコマンド実行する RemoteCommand cd /home && ls -l
// "stty: 'standard input': Inappropriate ioctl"が出る場合 RequestTTY yes
|
ポートフォワード
1 2
| // -fN:バックグラウンド実行 ServerAliveInterval:Keep-aliveを送る $ ssh -o ServerAliveInterval=30 -fN -L 8080:[接続先ホスト]:80 [踏み台ホスト]
|
パスワード自動入力: sshpassコマンド
1 2 3 4 5 6 7 8
| // インストール(debian) $ sudo apt-get install -y sshpass
// インストール(msys2) $ pacman -S sshpass
// パスワードの自動入力 $ sshpass -p "[PASSWORD]" ssh user@hostname
|
他には、expectコマンドなどもあります。(※expectはSSH以外の用途にも使える)
パスワード自動入力: ssh-add
そもそも鍵ファイル自体にパスフレーズがかかってるのを省略したい場合
1 2 3 4 5 6 7 8 9 10 11 12
| // MSYS2の場合のみeval実行 $ eval `ssh-agent` Agent pid 3244
// 追加 $ ssh-add [鍵ファイル] Enter passphrase for [鍵ファイル]: (パスフレーズ入力) Identity added: [鍵ファイル]
// 確認 $ ssh-add -l 2048 SHA256:9wdnLaXG7EApk7b8jlAW7H4xpcjdCO8UrRJyus2QKyE [鍵ファイル] (RSA)
|
permission denied対策
- ホームディレクトリ:755
- .sshディレクトリ:700
- authorized_keys:600
- 秘密鍵:600
- .sshディレクトリに[秘密鍵].pubが置きっぱなしだと出る場合がある