最終更新日: 2026-08-29
TOP(About this memo)) > 一覧(Linux) > SSH
ssh
ssh <ユーザー名>@<ホスト> -i ~/.ssh/id_ed25519-i identity_file … 公開鍵認証で使用する秘密鍵ファイルを指定する。指定しない場合は ~/.ssh/id_ed25519、~/.ssh/id_rsa などが順に試される。-F configfile … 設定ファイルを指定する。デフォルトでは ~/.ssh/config が使用される。-p … ポート番号を指定する。scp … SSHを使用してリモートホストとの間でファイルを転送する。ssh-keygen … 鍵ペアの生成。ssh-copy-id … 公開鍵をリモートホストに登録するコマンド。環境によってはインストールされていない場合がある。~/.ssh/authorized_keys) ←→ SSHクライアント(秘密鍵: ~/.ssh/<秘密鍵>)~/.ssh/config で接続先ホストに対して使用する秘密鍵を指定しておく。sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
KbdInteractiveAuthentication no
KbdInteractiveAuthentication は、OpenSSH 8.7(2021年)より前は ChallengeResponseAuthentication という名前だった。古い記事では後者で書かれていることが多い。旧名も非推奨のエイリアスとして残っているため設定ファイルはそのまま動くが、新しく書くなら KbdInteractiveAuthentication を使う。sudo systemctl restart sshd
sudo service sshd restart。scp -i ~/.ssh/secret.pem -r <ユーザー名>@<ホスト>:/remote/path /local/path
scp -i ~/.ssh/secret.pem -r /local/test.txt <ユーザー名>@<ホスト>:/home/user/tmp/
-r を付けるとディレクトリごと再帰的にコピーする。~/.ssh/config にホストを登録しているなら scp <ホスト名>:/path /local/path でよい。sftp や rsync の利用が推奨されている(?)。用途によってはrsyncの方が便利(--exclude などが使える)。ssh-rsa 署名がデフォルトで無効化された。RSA鍵自体が使えなくなったわけではなく、SHA-2を使う rsa-sha2-256 / rsa-sha2-512 であれば利用できるが、新規に作るならed25519が無難。ssh-keygen -t ed25519 -C admin@example.com -f ~/.ssh/example/id_ed25519 -N "" && chmod 600 ~/.ssh/example/id_ed25519 && cat ~/.ssh/example/id_ed25519.pub
ssh-keygen -t rsa -b 4096 -C admin@example.com -f ~/.ssh/example/id_rsa -N ""
-t … 作成する鍵の形式を rsa、ecdsa、ed25519 などから指定する。-C … コメントを指定する(デフォルトは「ユーザー名@ホスト名」。-C "" でコメントを削除)。-b … 鍵長。RSAの場合は3072ビット以上が推奨される。ed25519は鍵長が固定のため指定不要。-f … 出力先のパス。-N … パスフレーズ。空文字を指定するとパスフレーズなしの鍵となる。パスフレーズは、秘密鍵ファイルを盗まれた際にすぐには使えないようにするためのもの。chmod 600 にしておかないと、ssh実行時にエラーになる。ssh-keygen -y -f /path/to/my-key-pair.pem > my-key-pair.pub
ServerAliveInterval 300
TCPKeepAlive yes
ProxyJump)の設定もここで行える。
mkdir ~/.ssh/example
ssh-keygen -t ed25519 -C admin@example.com -f ~/.ssh/example/id_ed25519 -N "" && cat ~/.ssh/example/id_ed25519.pub
# 表示された公開鍵をGitホスティングサービス側(GitHubならDeploy keys)に登録しておく
chmod 400 ~/.ssh/example/id_ed25519
vi ~/.ssh/config
Host example
HostName github.com
User git
IdentityFile ~/.ssh/example/id_ed25519
chmod 600 ~/.ssh/config
ssh-add による秘密鍵とパスフレーズの登録が、ssh-agentを起動するたびに必要。-A)を使うと接続先のサーバーから手元の鍵が利用可能な状態になるため、接続先が信頼できない場合はセキュリティリスクになる。UseKeychain yes)、この場合は上記の煩雑さの多くが解消される。