ssh – リモートサーバへ安全に接続するコマンド

リモートアクセス
スポンサーリンク

ssh コマンドは、ネットワーク越しにリモートマシンへ 暗号化された通信 で接続するためのコマンドです。
リモートサーバの管理やファイル転送、ポートフォワーディングなどに利用されます。

構文(Syntax)

ssh [オプション] [USER@]HOST [COMMAND]

主なオプション一覧

オプション説明使用例
-p PORT接続ポートを指定(デフォルト:22)ssh -p 2222 user@host
-i KEY秘密鍵ファイルを指定ssh -i ~/.ssh/id_rsa user@host
-l USERユーザー名を指定(USER@HOST と同じ)ssh -l alice host
-v詳細なデバッグ出力ssh -v user@host
-XX11転送を有効化(GUIアプリ転送)ssh -X user@host
-L [LOCAL_PORT]:[REMOTE_HOST]:[REMOTE_PORT]ローカルポートフォワーディングssh -L 8080:localhost:80 user@host
-R [REMOTE_PORT]:[LOCAL_HOST]:[LOCAL_PORT]リモートポートフォワーディングssh -R 2222:localhost:22 user@host
-Nリモートコマンドを実行せずポートフォワーディングのみ実施ssh -N -L 8080:localhost:80 user@host
-T疑似ターミナルを割り当てないssh -T git@github.com

実行例

リモートサーバへ接続

ssh user@example.com

出力例(初回接続時):

The authenticity of host 'example.com (203.0.113.1)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes

ポートを指定して接続

ssh -p 2222 user@example.com

秘密鍵を指定して接続

ssh -i ~/.ssh/id_rsa user@example.com

リモートでコマンドを1回だけ実行

ssh user@example.com "uptime"

出力例:

 10:30:00 up 3 days,  5:21,  2 users,  load average: 0.05, 0.02, 0.01

ローカルポートフォワーディング

ssh -L 8080:localhost:80 user@example.com

(ローカルの http://localhost:8080 からリモートの 80番ポート にアクセス可能)

GitHub への接続テスト

ssh -T git@github.com

出力例:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

エラー例(認証失敗)

ssh user@wronghost

出力例:

ssh: connect to host wronghost port 22: Connection refused

関連コマンド

  • scp : SSH を利用したファイル転送
  • sftp : SSH を利用したファイル転送(FTPライクな操作)
  • rsync : 差分転送可能なファイル同期ツール(SSH利用可能)
  • ssh-keygen : SSH 鍵ペアを生成
  • ssh-copy-id : 公開鍵をリモートサーバにコピー

備考

  • デフォルトの接続ポートは 22。変更されている場合は -p オプション必須。
  • パスワード認証よりも 公開鍵認証 を使うのが推奨されます。
  • ~/.ssh/config を利用すれば、ホストごとの接続設定を簡略化可能。
  • ssh-agent を使うと、秘密鍵のパスフレーズを毎回入力せずに済む。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント