こんにちは、フルスタックエンジニアのryuです。
今回の記事は、Linuxのsshコマンドの使い方を解説します。sshコマンドは、リモートのサーバーを操作するためのコマンドです。sshコマンドを使うことで、sshサーバーへアクセスすることができます。sshの特徴は安全に遠隔操作をすることができます。sshは現在、よく使われるコマンドなので操作方法を覚えておきましょう。
目次
【Linux】sshコマンドの使い方を解説!リモートのサーバーを操作しよう
sshとは?
ssh(Secure Shell)とは、ネットワーク上で安全な通信を行うためのプロトコルです。
リモートマシンへのログインやファイルの転送に使用されます。
sshは、データの暗号化や認証の手段を提供し、セキュリティの高い通信を可能にします。sshコマンドは、sshサーバーへアクセスするためのコマンドです。今回はsshコマンドの使い方を詳しく解説します。
sshコマンドの基本的な使い方
sshコマンドの基本的な使い方は以下の通りです。
ssh [オプション] [ユーザ名]@[リモートのIPアドレスまたはドメイン名] [コマンド]
sshコマンドは、ssh接続するユーザー名とIPアドレスを指定します。
sshコマンドの具体例
例えば、userユーザーで192.168.1.1のサーバーにアクセスする場合は以下のように実行します。
ssh user@192.168.1.1
ユーザー名を省略することも可能です。この場合、rootユーザーとしてログインします。
ssh 192.168.1.1
→ ssh root@192.168.1.1と同じ
sshで相手サーバーでコマンドを実行する
sshコマンドの後ろにコマンドを指定すると、リモートサーバーでコマンドを実行することができます。
例えば、リモートサーバーのlsコマンドを実行する場合は、以下のように実行します。
ssh user@192.168.1.100 'ls'
コマンドを実行すると、192.168.1.100のリモートサーバーのlsコマンドの実行結果が返ってきます。
sshコマンドのオプション
sshコマンドのオプション一覧
sshコマンドのオプションの一覧は以下の通りです。
ション | 説明 |
---|---|
-1 | プロトコルバージョン1を使用する |
-2 | プロトコルバージョン2を使用する(デフォルト) |
-4 | IPv4を使用する |
-6 | IPv6を使用する |
-A | 認証エージェントを転送する |
-a | ローカルのポートとダイナミックなポートフォワーディングを無効にする |
-C | 圧縮を有効にする |
-c cipher_spec | 暗号化アルゴリズムを指定する |
-D [ポート] | ローカルのポートをダイナミックなフォワーディングのために使用する |
-E log_file | ログを指定したファイルに記録する |
-e escape_char | エスケープ文字を指定する |
-F configfile | 設定ファイルを指定する |
-g | リモートのX11の接続を受け入れる |
-i identity_file | 認証キーファイルを指定する |
-J [user@]host[:port] | ジャンプホストを指定する |
-k | ホストキーのチェックを無効にする |
-L [bind_address:]port:host:hostport | ローカルのポートフォワーディングを設定する |
-l login_name | ログイン名を指定する |
-M | 制御マスターモードを有効にする |
-m mac_spec | メッセージ認証コードアルゴリズムを指定する |
-N | コマンドを実行しない(ポートフォワーディングのみ) |
-o option | 設定オプションを指定する |
-O ctl_cmd | 制御コマンドを実行する |
-p port | 接続先のポートを指定する |
-Q query_option | クエリオプションを実行する |
-R [bind_address:]port:host:hostport | リモートのポートフォワーディングを設定する |
-S ctl_path | 制御ソケットの場所を指定する |
-T | TTYの割当を無効にする |
-t | TTYを割り当てる |
-V | バージョン情報を表示する |
-v | 詳細な出力を表示する |
-W host:port | 標準入力および標準出力を結びつける |
-w local_tun[:remote_tun] | ネットワークトンネルを設定する |
-X | X11の転送を有効にする |
-x | X11の転送を無効にする |
-Y | 信頼できるX11の転送を有効にする |
ポートを指定してアクセスする
ポートを指定してsshサーバーにアクセスする場合は、”-p”オプションを指定します。
例えば、2222番ポートにアクセスする場合は、以下のように実行します。
ssh -p 2222 user@192.168.1.1
sshはセキュリティ上、ポート番号を変更していることがあります。そのような時は、”-p”オプションを使いましょう。
秘密鍵を使ってアクセス
秘密鍵を使ってアクセスする場合は、”-i”オプションを使用します。
ssh -i ~/.ssh/id_rsa user@192.168.1.1
上記の例では、~/.ssh/id_rsaの秘密鍵を使って、192.168.1.1のサーバーへアクセスしています。
ポートフォワーディング
SSHのポートフォワーディング(Port Forwarding)は、ローカルマシンとリモートサーバ間で特定のポートを転送する機能です。
ローカルマシンからリモートサーバを介して他のホストに接続することができます。
ポートフォワーディングを実行する場合は、”-L”オプションを使います。
ssh -L 8080:localhost:80 user@192.168.1.100
この例では、ローカルの8080番ポートをリモートのホストの80番ポートに転送します。つまり、ローカルマシンのブラウザで http://localhost:8080 にアクセスすると、リモートサーバのウェブサーバにアクセスすることになります。
sshサーバーの構築方法やscpコマンドの使い方など関連記事はこちらです。
sshコマンドの使い方まとめ
今回は、Linuxのsshコマンドの使い方を解説しました。sshコマンドはLinuxの運用をする方はよく使うコマンドなので、覚えておきましょう。
さらにLinuxのコマンドの学習をしたい人に向けて、InfraAcademyというインフラ学習サービスのご紹介です。
「Linuxの実践的な内容を学習したい」、「コマンドを打ちながらLinuxを学習したい」
そのようなご要望にお応えして、Linuxやネットワークが学習できるサイト「InfraAcademy」をリリースしました!
InfraAcademyの特徴は以下の通り。
- Linuxやネットワークの知識が体系的に学べる
- LINEやZoomでエンジニアに質問可能
- 全ての講座が閲覧できて、1,980円
- 購入から1週間以内であれば全額返金
Linuxの参考書を購入すると、3,000円以上するものもあります。InfraAcademyでは、1,980円でコンテンツ見放題で現役エンジニアに質問できるサービスまで付いています。
また、購入から1週間以内であれば全額返金保証もあるので安心です。
InfraAcademyでは、一部のコンテンツは無料で閲覧できるので、興味のある方はお試しください。