InfraLab
SSH58 cmd

SSHチート集

基本接続・鍵管理・ポートフォワード・ssh-agent・多段SSH・sshd_config・トラブルシューティングを網羅。

更新日
2026-05-12
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

58 / 58

CommandDescriptionExampleCopy
ssh user@hostユーザー名指定でホストに接続ssh deploy@example.com
ssh -p PORT user@hostポート番号を指定して接続ssh -p 2222 deploy@example.com
ssh -i KEY user@host秘密鍵ファイルを指定して接続ssh -i ~/.ssh/id_ed25519 deploy@example.com
ssh -v user@host詳細ログ出力で接続(-vv, -vvv でさらに詳細)ssh -vvv deploy@example.com
ssh -o option=valuessh_config の項目をコマンドラインから上書きssh -o StrictHostKeyChecking=accept-new host
ssh user@host COMMAND接続せずにリモートでコマンドを実行ssh deploy@host 'uptime'
ssh -t user@host強制的に擬似端末を割り当てて接続(sudo 等で必要)ssh -t deploy@host 'sudo systemctl status nginx'
ssh -N -fコマンド実行なし・バックグラウンドで接続のみ確立(トンネル用)ssh -N -f -L 8080:localhost:80 host
ssh-keygen -t ed25519Ed25519 形式の鍵ペアを生成(推奨)ssh-keygen -t ed25519 -C 'me@example.com'
ssh-keygen -t rsa -b 40964096bit RSA 鍵ペアを生成ssh-keygen -t rsa -b 4096 -C 'me@example.com'
ssh-keygen -p -f KEY既存鍵のパスフレーズを変更ssh-keygen -p -f ~/.ssh/id_ed25519
ssh-keygen -y -f KEY秘密鍵から公開鍵を再出力ssh-keygen -y -f ~/.ssh/id_ed25519 > id_ed25519.pub
ssh-keygen -lf KEY鍵のフィンガープリントを表示ssh-keygen -lf ~/.ssh/id_ed25519.pub
ssh-copy-id user@hostローカル公開鍵をリモートの authorized_keys に追加ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@host
~/.ssh/authorized_keysサーバー側で許可する公開鍵を列挙するファイル(パーミッション 600)echo 'ssh-ed25519 AAAA...' >> ~/.ssh/authorized_keys
~/.ssh/configホスト別の接続設定(HostName/User/Port/IdentityFile 等)Host prod\n HostName 203.0.113.10\n User deploy\n IdentityFile ~/.ssh/id_ed25519
ssh-keygen -R hostknown_hosts から指定ホストのエントリを削除ssh-keygen -R example.com
ssh -L LPORT:HOST:RPORT user@gwローカルポート転送(ローカル→リモート方向のトンネル)ssh -L 5432:db.internal:5432 bastion
ssh -R RPORT:HOST:LPORT user@gwリモートポート転送(リモート→ローカル方向のトンネル)ssh -R 8080:localhost:3000 jump
ssh -D PORT user@gwダイナミックポート転送(SOCKSプロキシ)ssh -D 1080 bastion
ssh -fN -L ...対話シェルを開かずバックグラウンドでトンネルだけ確立ssh -fN -L 5432:db:5432 bastion
GatewayPorts yessshd_config 設定。-R で他ホストからの接続を許可するGatewayPorts yes
eval $(ssh-agent -s)ssh-agent を起動して環境変数を読み込みeval $(ssh-agent -s)
ssh-add KEYagent に秘密鍵を登録ssh-add ~/.ssh/id_ed25519
ssh-add -lagent に登録済みの鍵を一覧表示ssh-add -l
ssh-add -Dagent から全ての鍵を削除ssh-add -D
ssh -A user@hostssh-agent forwarding を有効にして接続(多段先で同じ鍵を使える)ssh -A deploy@bastion
AddKeysToAgent yesssh_config 設定。接続時に鍵を agent に自動追加AddKeysToAgent yes
scp file user@host:DESTローカルファイルをリモートへコピーscp ./app.tar.gz deploy@host:/tmp/
scp -r DIR user@host:DESTディレクトリを再帰的にコピーscp -r ./dist deploy@host:/var/www/
scp user@host:SRC LOCALリモートファイルをローカルへ取得scp deploy@host:/var/log/app.log .
scp -P PORTscp でポート指定(大文字 P)scp -P 2222 file host:/tmp/
sftp user@host対話的なファイル転送セッションを開始sftp deploy@host
rsync -avz SRC user@host:DEST圧縮・属性保持で差分同期rsync -avz ./dist/ deploy@host:/var/www/
rsync -e 'ssh -p PORT'rsync で SSH のポートやオプションを指定rsync -avz -e 'ssh -p 2222' src/ host:/tmp/
rsync --delete送信側にないファイルを受信側からも削除(完全ミラー)rsync -avz --delete src/ host:/var/www/
ssh -J jump user@hostProxyJump で踏み台経由接続ssh -J bastion deploy@10.0.0.5
ProxyJump jump~/.ssh/config に書く多段SSH指定Host internal\n HostName 10.0.0.5\n ProxyJump bastion
ProxyCommand ssh -W %h:%p jumpProxyCommand を使った多段SSH(古い書式)ProxyCommand ssh -W %h:%p bastion
ssh -J u1@gw1,u2@gw2 hostProxyJump を複数指定して三段以上の踏み台経由ssh -J ops@gw1,ops@gw2 deploy@target
/etc/ssh/sshd_configsshd の設定ファイル本体sudo vi /etc/ssh/sshd_config
Port 22sshd が待ち受けるポート番号Port 2222
PermitRootLogin noroot の直接ログインを禁止(推奨)PermitRootLogin no
PasswordAuthentication noパスワード認証を無効化(鍵認証のみ)PasswordAuthentication no
PubkeyAuthentication yes公開鍵認証を有効化PubkeyAuthentication yes
AllowUsers user1 user2ログイン可能なユーザーをホワイトリスト指定AllowUsers deploy ops
ClientAliveInterval 60アイドルクライアントへの keepalive 間隔(秒)ClientAliveInterval 60
MaxAuthTries 3認証失敗の最大試行回数MaxAuthTries 3
sudo sshd -tsshd_config の構文チェックsudo sshd -t
sudo systemctl reload sshdsshd を無停止リロードsudo systemctl reload sshd
ssh -vvv user@host最大詳細のデバッグログを出力ssh -vvv deploy@host
ssh -G user@host実際に適用される ssh_config を表示ssh -G deploy@host
ssh -Q cipherクライアントが対応する暗号一覧を表示ssh -Q cipher
chmod 600 ~/.ssh/id_*秘密鍵のパーミッションを 600 に修正(緩いと拒否される)chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.ssh~/.ssh ディレクトリのパーミッションを 700 に修正chmod 700 ~/.ssh
sudo journalctl -u sshd -esshd のログを末尾から表示sudo journalctl -u sshd -e --since '1 hour ago'
tail -f /var/log/auth.log認証ログを追跡(Debian/Ubuntu)sudo tail -f /var/log/auth.log
tail -f /var/log/secure認証ログを追跡(RHEL/CentOS)sudo tail -f /var/log/secure
Related