はじめに
SSH(Secure Shell)は、2つのシステム間の安全なリモート接続を可能にするネットワークプロトコルです。システム管理者は、SSHユーティリティを使用して、マシンを管理したり、システム間でファイルをコピーまたは移動したりします。 SSHは暗号化されたチャネルを介してデータを送信するため、セキュリティは高レベルです。
この記事では、最も一般的なSSHコマンドについて説明します。 。このリストは虎の巻としても使用でき、次にタスクを完了する必要があるときに役立ちます。
前提条件
- SSHクライアント お好みの
- SSHサーバー リモートマシン上
- リモートサーバーのIPアドレスまたは名前
リモートサーバーにアクセスする方法
リモートマシンに接続するには、そのIPアドレスまたは名前が必要です。ターミナルまたはSSHクライアントをロードし、 ssh
と入力します 続いてIPアドレス:
ssh 192.168.56.101
または名前:
ssh test.server.com
初めてホストに接続すると、次のメッセージが表示されます:
はいと入力します Enterキーを押します。パスワードも入力する必要があるかもしれません。
SSH接続のユーザー名を指定
SSHは、リモートサーバーにアクセスするときに現在のユーザーを使用します。 SSH接続のユーザーを指定するには、次の形式でコマンドを実行します。
ssh [email protected]_or_ip
例:
ssh [email protected]
注: 「接続が拒否されました」エラーが発生した場合は、SSHの「接続が拒否されました」ガイドを参照して解決策を確認してください。
SSH接続に別のポート番号を使用する
デフォルトでは、SSHサーバーはポート22で接続をリッスンします。SSH構成ファイルのポート設定が変更されている場合は、ポートを指定する必要があります。そうしないと、次のエラーが発生します:
カスタムSSHポート番号を使用してリモートホストに接続するには、 -p
を使用します 国旗。例:
ssh test.server.com -p 3322
SSHKeygenを使用してSSHキーを生成する
SSH接続のセキュリティを向上させるには、keygenユーティリティを使用してキーペアを生成します。このペアは、公開鍵と秘密鍵で構成されています。公開鍵は共有できますが、秘密鍵は安全に保つ必要があります。
SSHキーペアは、サーバーに対してクライアントを自動的に認証するために使用されます。 SSHキーペアを作成すると、サーバーにアクセスするためにパスワードを入力する必要がなくなります。
ホストマシンの端末で、次のコマンドを使用してキーペアを作成します。
ssh-keygen -t rsa
デフォルト設定を使用するには、ファイルの場所とパスフレーズのプロンプトでEnterキーを押します。
公開SSHキーのコピー
SSH認証にキーペアを使用するには、公開キーをサーバーにコピーする必要があります。キーはファイルid_rsa.pub です 以前はSSHkeygenユーティリティで作成されました。
キーをサーバーにコピーするには、クライアントから次のコマンドを実行します。
ssh-copy-id hostname_or_IP
現在のユーザーを使用したくない場合は、ユーザー名を指定することもできます。
求められたら認証するパスワードを入力します。この後、同じサーバーに接続するためにパスワードを使用する必要がなくなります。
SCPを使用してSSH経由でリモートでファイルをコピーする
SCP を使用して、SSHプロトコルを介してファイルを安全にコピーできます 道具。基本的な構文は次のとおりです。
scp fileName [email protected]:/home/username/destination
たとえば、ファイルをコピーするには sample3 ユーザー名testを使用してリモートサーバー上のデスクトップに 、次のように入力します:
scp sample3 [email protected]:/home/test/Desktop
出力には、操作の概要が表示されます。
必ず大文字を使用してください -P
ポートを指定する必要がある場合はフラグを立てます。
SSH構成ファイルの編集
リモートユーザーがSSH経由でサーバーにアクセスする方法を制御できます。 sshd_config
の設定を編集します SSHサーバーオプションをカスタマイズするためのファイル。使い慣れたオプションのみを編集してください。設定が不適切なため、サーバーにアクセスできなくなる可能性があります。
選択したエディターを使用してファイルを編集します。変更を加えるには、スーパーユーザーの権限が必要です。 Linuxでは、 vimを使用します :
リモートホストのコマンドラインで、次のように入力します。
sudo vim /etc/ssh/sshd_config
sudoパスワードを入力すると、シェルが使用したエディターでファイルを開きます。
SSHサービスを再開します
SSH構成を変更するときは、Linuxでサービスを再起動する必要があります。
Linuxディストリビューションに応じて、設定を変更したマシンで次のいずれかのコマンドを実行します。
sudo ssh service restart
または:
sudo sshd service restart
最後に、パスワードを入力してプロセスを完了します。その結果、次のSSHセッションは新しい設定を使用します。
基本的なSSHコマンド
SSHを使用してリモートサーバーで作業するには、基本的なSSHコマンドを知っている必要があります。この記事のコマンドとオプションを使用して、リモートホストを管理します。フラグを組み合わせて、必要な出力を取得できることに注意してください。
作業ディレクトリパスを表示
pwd
を使用します ファイルシステムパスを表示するコマンド。
出力には、現在のディレクトリの場所が表示されます。
ファイルとディレクトリの一覧表示
ディレクトリの変更
現在の作業フォルダの内容を一覧表示するには、 lsを使用します コマンド。
シェルには、すべてのディレクトリ、ファイル、およびリンクの名前が表示されます。詳細情報を取得するには、次のフラグのいずれかを追加します。
-
-a
非表示のLinuxファイルとドットで始まるエントリを表示します。 -
-l </ code>
ディレクトリコンテンツのファイル詳細を表示します。たとえば、出力には権限、所有権、日付などが含まれます。 -
-s
ファイルのサイズをブロック単位で一覧表示します。 -hを追加して、人間が読める形式でサイズを表示します。
特定のフォルダに移動するには、 cd
を使用します コマンドとディレクトリの名前またはパス。
cd Desktop/Downloads/Sample
名前では大文字と小文字が区別されることに注意してください。 cd
を使用する ユーザーのホームディレクトリに戻るための名前やパスがない。
便利なcd
オプションは次のとおりです。
-
cd ..
現在の場所より1レベル上のディレクトリに移動します。 -
cd-
前のディレクトリに切り替えます。 -
cd /
ルートディレクトリに移動します。
ファイルをコピーする
cp
を使用します ファイルまたはディレクトリをコピーするコマンド。ファイルの名前とターゲットの場所を含める必要があります。
cp fileName /directory/path/destination
file1をコピーするには デスクトップから Dir1へ 、次のように入力します:
cp file1 Dir1
file1の名前を変更するには 別の宛先にコピーするときは、次の形式を使用してください:
cp file1 Dir1/Newfile1Name
このコマンドはfile1をコピーします Dir1へ 指定した名前で。
ディレクトリとその内容をコピーするには、次の形式で-rフラグを使用します。
cp -r Directory1 NewLocation
ファイルの移動
mv
コマンドは、コピーコマンドと同じように機能します。
たとえば、ファイルを別の場所に移動するには、次のように入力します。
mv fileName directory/path/destination
ファイルを作成する
touchコマンドを使用すると、任意の拡張子の新しいファイルを作成できます。
ターミナルで、次のコマンドを入力します。
touch fileName
たとえば、 system.logを作成するには ファイル、次のように入力します:
touch system.log
ディレクトリを作成する
ディレクトリを作成するには、 mkdir
を使用します 指図。新しいディレクトリ名またはフルパスを次の形式で入力します:
mkdir NewDirectoryName
または:
mkdir directory/path/NewDirectoryName
ファイルまたはディレクトリを削除する
Linuxファイルを削除するには、 rm
を使用します この形式:
rm fileName
さらに、フルパスを入力できます:
rm /home/user/dir1/fileName
ディレクトリを削除する 、 -r
を追加します rmコマンドにフラグを立てます。
ネットワーク情報の表示
すべてのネットワークアダプタのステータスを表示するには、 ifconfig
を使用します 指図。さらに、ifconfigでオプションを使用しない場合、出力にはアクティブなインターフェイスのみが表示されます。
ターミナル画面をクリアする
bash画面の現在の作業領域をクリアするには、 clear
と入力します シェルで。このコマンドは、画面の一部をクリアします 前の出力を上にシフトします。
端末から出力を完全に削除するには、リセット
を使用します コマンド。
ローカルコンピューターからリモートサーバーでコマンドを実行する
このメソッドは新しいシェルを作成しません。代わりに、コマンドを実行して、ユーザーをローカルプロンプトに戻します。この形式でファイルを作成したり、ファイルをコピーしたり、その他のSSHコマンドを実行したりできます。
ローカルマシンからリモートでコマンドを実行するには、SSHコマンドに命令を追加します。たとえば、ファイルを削除するには、次のように入力します。
ssh test.server.com rm ~/Desktop/Dir1/sample4
パスワードを入力すると、リモートサーバー上のファイルは新しいシェルを作成せずに削除されます。
SSHコマンドラインオプション
SSHツールには多くのオプションが付属しています パラメーター。次の表に、一般的なSSHオプションと対応する説明を示します。
SSHオプション | 説明 |
-1 | プロトコルバージョン1を使用するようにsshに指示します |
-2 | プロトコルバージョン2を使用するようにsshに指示します。 |
-4 | IPv4アドレスのみを許可します。 |
-6 | IPv6アドレスのみを許可します。 |
-A | 認証エージェント接続の転送を有効にします。このオプションは注意して使用してください。 |
-a | 認証エージェントの接続転送を無効にします。 |
-b bind_address | 複数のアドレスを持つローカルホストでこのオプションを使用して、接続の送信元アドレスを設定します。 |
-C | すべてのファイルのデータ圧縮を有効にします。低速接続でのみ使用されます。 |
-c cipher_spec | 暗号仕様を選択するために使用します。値をコンマで区切ってリストします。 |
-E log_fileName | 標準エラーではなく、デバッグログをlog_fileに添付します。 |
-f | パスワードまたはパスフレーズを入力する前であっても、sshをバックグラウンドに送信します。 |
-g | リモートホストがローカルマシンに転送されたポートに接続することを許可します。 |
-q | sshをクワイエットモードで実行します。ほとんどのエラーまたは警告メッセージを抑制します。 |
-V | sshツールのバージョンを表示して終了します。 |
-v | ssh接続のデバッグメッセージを出力します。詳細モードは、構成の問題をトラブルシューティングするときに役立ちます。 |
-X | このオプションを使用して、X11転送を有効にします。 |
-x | X11転送を無効にします。 |