やりたかったこと

VPSやリモートサーバーにSSHで接続したかった。

環境

  • Linux / Mac / Windows(Git Bash)

基本的なSSH接続

ssh ユーザー名@IPアドレス
ssh root@192.168.1.1
ssh root@example.com

ポートを指定する

ssh -p 2222 root@example.com

SSHキーを使って接続する

ssh -i ~/.ssh/id_ed25519 root@example.com

~/.ssh/configで設定を省略する

毎回オプションを入力するのが面倒な場合は設定ファイルに書く。

Host myserver
  HostName 192.168.1.1
  User root
  Port 22
  IdentityFile ~/.ssh/id_ed25519

設定後は以下だけで接続できる。

ssh myserver

よく使うオプション

ssh -v root@example.com      # 詳細ログを表示
ssh -L 8080:localhost:80 root@example.com  # ポートフォワーディング
scp file.txt root@example.com:/tmp/       # ファイルをコピー

セキュリティ設定

rootログインを無効にする

nano /etc/ssh/sshd_config
# PermitRootLogin no に変更
systemctl restart sshd

パスワード認証を無効にする

# /etc/ssh/sshd_config
PasswordAuthentication no

ハマったポイント

  • 接続できない場合はファイアウォールのポート22が開いているか確認する
  • SSHキーのパーミッションは600でないと使えない(chmod 600 ~/.ssh/id_ed25519
  • VPSは初回接続時にフィンガープリントの確認が出る

関連記事