【ssh】Linuxでリモートホストに接続するコマンド

Linuxのsshコマンドは、SSHプロトコルを用いてリモートホストに接続するコマンドです。SSHでのネットワーク通信は暗号化が行われるので、安全に通信することが可能です。

sshコマンドの使い方

sshのコマンドの構文は以下の通りです。

$ ssh [オプション] [ユーザー@]ホスト名 [コマンド]

主なオプション

-Cデータを圧縮する
-c暗号方式を指定する
-iRSAまたはDSA認証の秘密鍵ファイルを指定する
-lログインするユーザー名を指定する
-p接続ポートを指定する(デフォルトは22番)
-XX11ポートフォワードを有効にする
-xX11ポートフォワードを無効にする

リモート・ホストにログインする

ユーザー名を指定して、リモートホストにsshでログインします。

以下の2つの例は、どちらもユーザー名「user」でリモートホスト「192.168.10.1」に接続します。

# ユーザー名を「-l user」で指定する例
$ ssh -l user 192.168.10.1

# 「ユーザー@ホスト名」形式で指定する例
$ ssh user@192.168.10.1

秘密鍵を指定して、リモート・ホストにログインする

公開鍵認証を用いてSSH接続を行う場合、リモートホストで生成した秘密鍵をクライアント側に保存しておきます。

たとえば、リモート・ホストの秘密鍵を ~/.ssh/id_rsa に保存してある場合は「-i」オプションで指定します。

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

このとき秘密鍵のパーミッションによってはエラーになる可能性があります。秘密鍵のパーミッションは chmod コマンドで 600 に設定する必要があります。

接続ポートを指定してリモート・ホストに接続する

ポート番号が22以外に設定されたリモート・ホストに接続するには、「-p ポート番号」の形式で指定します。

$ ssh -p 67890 user@192.168.10.1

リモート・ホストでコマンドを実行する

リモート・ホスト「192.168.10.1」のユーザー「user」で、lsコマンドを実行します。

$ ssh user@192.168.10.1 ls

コマンドを実行するだけでログインはされません。


イベント

2017/12/05(火)
Design Thinking Square