1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSHについてのメモ

Last updated at Posted at 2025-12-16

この記事について

サーバーにSSHアクセスするための手順メモです

SSHの仕組み

ご指摘頂いたので削除します

OSによる違い

WindowsのPowerShellにも、LinuxやMacのbash, zshにも、デフォルトでOpenSSHが入っておりほとんど同じ作業で使うことができます。ssh-keygenで鍵を作成して ~/.ssh に鍵を置けば認識してくれますし、設定ファイル ~/.ssh/config の書き方も置き場所も同じです

1. 鍵を作成する

ssh-keygenで作成します
-tで鍵の種類、-Cでコメントを指定します

ssh-keygen -t ed25519 -C "for blog vps"

鍵の種類

鍵の種類は時代や環境に合わせて選択すべきですが、2025年時点で一般的なサーバーに用いるのであればed25519がセキュリティ、パフォーマンスの両面で優れており推奨されるようです

コメント

コメントはSSH接続自体には影響しない文字列で、何のための鍵なのか、誰の鍵なのか分からなくならないように書いておくものです。公開鍵の末尾に平文で追加されます

鍵の書き出しファイルパス

上記を実行するとファイルパスを聞いてきます

OpenSSHは特に指定がない場合は~/.ssh内にある鍵を順番に試すので、デフォルトのパスとして~/.ssh/ed25519が書かれており、そのまま書き出すのでも問題ないと思います

パスフレーズ

最後にパスフレーズを作成するか聞かれます

SSH接続する度に入力しなければならないので面倒ではありますが、秘密鍵を外部の誰かに取られたらかなり危険ですので最低限何かしら付けておく方がいいと思います

2. ~/.ssh/config

~/.ssh/configに接続先ごとの鍵のパスやユーザー名を指定できます

~/.sshに鍵を置いてあるのに認識してくれないとき、~/.sshに置いてある鍵が多すぎてタイムアウトしたり試行回数エラーを起こすときにはこちらに書くと解決することが多いようです

~/.ssh/config
# GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github
  IdentitiesOnly yes

# VPS
Host vps-prod
  HostName 192.168.11.4
  User hoge
  IdentityFile ~/.ssh/id_ed25519_vps_prod
  IdentitiesOnly yes

IdentitiesOnly yesにしておくと、対象ホストに接続するときに記載の鍵のみを使用しますので、上記のタイムアウトや試行回数エラー対策をするときは必ずyesにします

また、上記では~/.ssh直下に置いていますが、~/.ssh/vps/id_ed25519 のようにフォルダ内に収めても良いですし、全然違う場所に置いても良いようです

3. サーバーに公開鍵を配置する

後は接続先に公開鍵を設定すればSSH接続できるようになります
~/.ssh/authorized_keysに書いておけばアクセスが来た時に試してくれます

~/.ssh/authorized_keysの例 (書いてある鍵はどこにも使ってません)
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCMeHkGTofZQQLjPnRSGisCNJ0TQF6T1hS05ka6tnRr for blog vps

1行を鍵1つとして順番に試してくれますので複数の鍵も登録しておけます

4. サーバーにSSH接続する

1~3の手順で対象サーバーにSSH接続できるようになった筈です

OpenSSHにはsshのほかにもscp, sftp, rsync, sshfsなどのコマンドがありますが、いずれも同じ設定ができていれば使用できます

ssh

192.168.11.4にユーザー名hogeでログインするときは以下のように書きます
デフォルトの22番ポートを使う場合、ポート番号は省略できます

SSHポートが22のとき
ssh hoge@192.168.11.4
SSHポートが53128のとき
ssh hoge@192.168.11.4:53128

scp

ファイルだけでなくディレクトリ丸ごとコピーすることができます

ファイルが1つのとき(ローカルにコピー)
scp username@xxx.xxx.xxx.xxx:/dir/file_name ./file_name

順番を逆にすると逆向きにコピーできます
上書き警告がでないので注意が必要です

ファイルが1つのとき(サーバーにコピー)
scp ./file_name username@xxx.xxx.xxx.xxx:/dir/file_name

-r オプションをつけると再帰的に複数ファイルをコピーできます

ディレクトリ丸ごとコピー
scp -r username@xxx.xxx.xxx.xxx:/dir .

ポートは-Pで指定できます

ポートが53128のとき
scp -P 53128 -r username@xxx.xxx.xxx.xxx:/dir/file_name ./file_name

-iで鍵を指定する

使用する秘密鍵を指定する
scp -i ~/.ssh/id_ed25519_vps_prod -P 53128 -r username@xxx.xxx.xxx.xxx:/dir/file_name ./file_name

IPv6で接続しようとしてIPv4の接続に失敗することがあるそうです
IPv4強制するには-4オプションです

scp -4 -i ~/.ssh/id_ed25519_vps_prod -P 53128 -r username@xxx.xxx.xxx.xxx:/dir/file_name 

まとめ

書きながら理解が不十分だったところを確認できました

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?