本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「ssh」コマンドです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、リモートマシンにログインしてコマンドを実行する「ssh」コマンドです。
「ssh」は、暗号化された通信を使ってリモート接続をするコマンドです。リモートマシンにログインして、リモートマシン上でコマンドを実行したい場合に使用します。
なお、接続先のコンピュータでは、「sshd(SSH daemon:SSHのサーバプログラム)」が動作している必要があります。また、インターネット経由で接続する場合には、ルーターなどで外部から接続できるように設定しておく必要もあります。sshコマンドを試してみたい場合には、ローカルネットワーク内のコンピュータや仮想化環境を使用しましょう。
ssh/sshdによる接続プロトコルを「SSH(Secure Shell)」と呼び、古くからあるバージョン1と、より安全性の高いバージョン2(SSH2)があります。
sshコマンドの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-p ポート番号 | 接続に使用するポート番号を指定する |
-l ユーザー名 | 接続に使用するユーザー名を指定する |
-i IDファイル | 接続に使用する公開鍵ファイルを指定する |
-C | 全ての通信を圧縮する |
-c 暗号化方法 | 通信を暗号化する方法を指定する(「3des」「blowfish」「des」が指定可能) |
-1 | SSHv1(SSHプロトコルバージョン1)だけを使用する |
-2 | SSHv2(SSHプロトコルバージョン2)だけを使用する |
-4 | IPv4だけを使用する |
-6 | IPv6だけを使用する |
-K | GSSAPI(Generic Security Services API)による認証を許可する |
-k | GSSAPIによる認証を許可しない |
-A | 認証エージェントを転送する(1つ目のサーバに接続後、続けて別のサーバに接続する際に、最初に使った秘密鍵をそのまま使用する) |
-a | 認証エージェントを転送しない |
-X | X11のポートフォワーディングを有効にする(リモートマシンのXアプリケーションが実行できるようになる) |
-x | X11のポートフォワーディングを無効にする |
-Y | 信頼されたX11転送(Trusted X11)を有効にする |
-f | コマンドを実行する際にsshをバックグラウンドにする(Xアプリケーションを実行する際に使用) |
-F 設定ファイル | 設定ファイルを指定する |
-o 設定パラメータ | 設定パラメータを指定する(設定ファイルに書かれた内容より優先される) |
-E ログファイル名 | エラーを指定したファイルに記録する |
-q | エラーメッセージや診断メッセージを表示しない(quiet mode) |
-v | デバッグメッセージを表示する(verbose mode) |
「ssh 接続先」で、指定したコンピュータに接続します。この場合は、sshコマンドを実行しているユーザー名で接続先のコンピュータにログインすることになります。別のユーザー名を使用したい場合は、「ssh -l ログイン名 接続先」または「ssh ログイン名@接続先」のように指定します。
sshコマンドで初めて接続する相手(コンピュータ)の場合は、「Are you sure you want to continue connecting(yes/no)?」というメッセージが表示されます。接続先に間違いがなければ「yes」と入力して、[Enter]キーを押します。
sshコマンドでコンピュータに接続すると、続いて「ログイン名@接続先 password:」のようなパスワードプロンプトが表示されます。「鍵ファイル」を使ってログインするように設定されている場合は、鍵に設定したパスワードを、鍵ファイルを使用していない場合は、接続先のログインパスワードを入力します。
【※】ssh接続には「公開鍵」と「秘密鍵」の2つの鍵ファイルを使用して接続します。鍵ファイルは「ssh-keygen」コマンドで作成し、公開鍵をサーバに、秘密鍵は自分の手元に置いて管理します。
ssh 接続先
ssh ログイン名@接続先
(指定したコンピュータに接続する)(画面1)
sshコマンドで他のコンピュータにログインすると、接続先のプロンプトが表示されます。ここで入力したコマンドは、全て接続先のコンピュータ上で実行されます。
例えば、以下の画面2では、sshコマンドで接続してから「uname -a」を実行しています。「uname」はシステム情報を表示するコマンドで、ここでは「-a」オプションでカーネルのバージョンやホスト名などを表示しています。
画面2では、比較のために、sshコマンド実行前にも同じ「uname -a」を実行しています。最初の「uname -a」は接続元のコンピュータ上、2回目の「uname -a」は接続先のコンピュータ上で実行している様子が分かります。
接続先で実行したいコマンドが決まっている場合は、「ssh 接続先 コマンド」のように、あらかじめコマンドを指定することも可能です。この場合、sshで接続してコマンドを実行したら即座に終了します。
ssh 接続先 コマンド
(接続先のコンピュータで指定したコマンドを実行する)(画面3)
また、リダイレクトで接続元のコンピュータ上に実行結果を保存することも可能です(画面4)。
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.