はじめに
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転送を無効にします。 |