意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されている場合があります。それぞれのマシンを直接訪問して管理するのは明らかに最善の方法ではありません。リモート コントロールが最も効果的な方法です。

Linux システムには、telnet、ssh、vnc など、いくつかのリモート管理ツールがあります。その中でも、ssh は暗号化された伝送を使用するシンプルで安全な管理方法であり、最も一般的に使用されています。

Secure Shell は SSH と略され、IETF のネットワーク ワーキング グループによって開発されました。SSH は、アプリケーション層とトランスポート層上に構築されたセキュリティ プロトコルであり、コンピューターのシェルに安全な送信および使用環境を提供します。

ここではSSHの主な7つの用途を紹介します。

1. 基本的な使い方

最も簡単な方法は、パラメータなしで ssh を入力し、次にホスト アドレスを入力することです。例:

ssh 192.168.0.116

この形式のホストへのログインでは、デフォルトで現在のユーザーを使用してログインします。初めて接続する場合、SSH はターゲットホストの信頼性を確認します。問題がなければ、yes と入力します。

指定されたユーザー名でホストにログインする場合、次の 2 つの方法があります。

a. -lオプションを使用する

ssh -l alvin 192.168.0.116

b. ユーザー@ホスト名の形式を使用する

SSH アルビン@192.168.0.116

これら 2 つの方法のうち、2 番目の方法が特によく使用されます。

2. 指定されたポート経由でログインする

SSH で使用されるデフォルトのポート番号は 22 です。最近の Linux システムのほとんどはポート 22 が開いています。ポート番号を指定せずに ssh プログラムを実行すると、要求はポート 22 を介して直接送信されます。

ポート 22 経由でログインしたくない場合は、-p オプションを使用してポートを指定できます。

ssh 192.168.0.116 -p 1234

拡張トピック: ポート番号を変更するには?

/etc/ssh/ssh_config を変更し、次の行を変更するだけです。

Port 22

3. すべてのデータの圧縮を要求する

-C オプションを使用すると、SSH 経由で送受信されるすべてのデータは圧縮されますが、暗号化されたままになります。

ssh -C 192.168.0.116

ただし、このオプションは、ネットワーク速度がそれほど速くない場合に役立ちます。ネットワーク速度が速い場合は、圧縮を使用すると効率が低下するため、状況に応じて使用する必要があります。

4. デバッグモードをオンにする

何らかの理由で、確立した SSH 接続をトレースしてデバッグしたいと考えています。 SSH が提供する -v オプション パラメータは、この目的のために設計されています。問題が発生した場所を確認できます。

[Alvin.Alvin-computer] ➤ ssh -v [email protected]
OpenSSH_7.1p2、OpenSSL 1.0.1g 2014 年 4 月 7 日
debug1: 設定データ /etc/ssh_config を読み込んでいます
debug1: 192.168.0.116 [192.168.0.116] ポート22に接続しています。
debug1: 接続が確立されました。
debug1: key_load_public: そのようなファイルまたはディレクトリはありません
debug1: プロトコル 2.0 の互換モードを有効にする
debug1: ローカルバージョン文字列 SSH-2.0-OpenSSH_7.1
debug1: リモート プロトコル バージョン 2.0、リモート ソフトウェア バージョン OpenSSH_7.4p1 Raspbian-10+deb9u4
debug1: 一致: OpenSSH_7.4p1 Raspbian-10+deb9u4 pat OpenSSH* compat 0x04000000
debug1: 192.168.0.116:22 に 'pi' として認証しています
debug1: SSH2_MSG_KEXINIT が送信されました
debug1: SSH2_MSG_KEXINIT を受信しました

5. 送信元アドレスをバインドする

クライアントに 2 つ以上の IP アドレスがある場合、SSH サーバーへの接続にどの IP が使用されているかを判断することは不可能になります。この状況を解決するには、-b オプションを使用して IP アドレスを指定します。この IP は接続を確立するための送信元アドレスとして使用されます。

[Alvin.Alvin-computer] ➤ ssh -b 192.168.0.105 [email protected]
Linux raspberrypi 4.14.71-v7+ #1145 SMP 2018年9月21日金曜日 15:38:35 BST armv7l
​
Debian GNU/Linux システムに含まれるプログラムはフリーソフトウェアです。
各プログラムの正確な配布条件は、
/usr/share/doc/*/copyright 内の個々のファイル。
​
Debian GNU/Linuxには、いかなる保証も一切ありません。
適用法によって許可されている。
最終ログイン: 2019年2月24日(日) 08:52:29 192.168.0.105

6. リモートコマンド実行

ターゲット ホストでコマンドを実行する場合、通常はターゲット ホストにログインし、コマンドを実行してからログアウトします。確かに可能ですが、かなり面倒です。

コマンドをリモートで実行したいだけの場合は、次のようにコマンドを続けるだけです。

[Alvin.Alvin-computer] ➤ ssh [email protected] ls -l
デスクトップ
文書
ダウンロード
マグパイ
音楽

7. リモートファイルシステムのマウント

SSH をベースにしたもう一つの優れたツールは sshfs と呼ばれます。 sshfs を使用すると、リモート ホストのファイル システムをローカルに直接マウントできます。使用形式は次のとおりです。

sshfs -o idmap=user user@hostname:/home/user ~/Remote

例えば:

sshfs -o idmap=ユーザー [email protected]:/home/pi ~/Pi

上記は、エディターが紹介した Linux SSH コマンドの詳細な統合です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Linux システムに docker をインストールし、ssh 経由で docker コンテナにログインする方法
  • Linux で SSH サーバー エイリアスを作成する 2 つの方法
  • Linux での sshd サービスとサービス管理コマンドの詳細な説明
  • SSH経由でLinuxサーバーにファイルやフォルダをアップロードする方法
  • Linux SSHログインプロセスの詳細な説明
  • git bash を使用して Linux にログインするための ssh の設定方法

<<:  JS ES6における構造化分解についてお話しましょう

>>:  JS ES6 非同期ソリューション

推薦する

Nginx における 2 つの現在の制限方法についての簡単な説明

負荷は通常、システム設計時に予測されます。システムがパブリック ネットワークに公開されている場合、悪...

ログインと登録機能を実現するjs

この記事の例では、ログインと登録機能を実装するためのjsの具体的なコードを参考までに共有しています。...

MySQL シリーズ 14 MySQL 高可用性実装

1. 内閣府マスターノードを監視することで、他のスレーブノードへの自動フェイルオーバーを実現できます...

HTTP ヘッダー情報の解釈と分析 (詳細概要)

HTTP ヘッダーの説明1. Accept: Web サーバーに受け入れるメディア タイプを通知しま...

Linux での Docker と portainer の設定方法

1.Docer CEをインストールして使用するこの記事では、CentOS 7 を例に Docker ...

jQueryは時間セレクタを実装する

この記事の例では、参考までに時間セレクターを実装するためのjQueryの具体的なコードを共有していま...

純粋な CSS を使用して 3D 回転効果を実装するサンプル コード

3D効果を実現するには、主にCSSのpreserve-3dプロパティとperspectiveプロパテ...

Tencent Cloud 上で Hadoop 3.x 疑似クラスターを構築する方法を説明します

1. 環境整備CentOS Linux リリース 7.5.1804 (コア)インストールフォルダを作...

Vueはタブ切り替えを実装します

この記事では、タブ切り替えを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

よく使用される MySQL 関数の完全なリスト (分類および要約)

1. 数学関数ABS(x) xの絶対値を返します。 BIN(x) xの2進値を返します(OCTは8...

JavaScript にはすでに Object があるのに、なぜ Map が必要なのでしょうか?

目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...

CSS により、子コンテナが親要素を超えます (子コンテナは親コンテナ内で浮動します)

序文場合によっては、次の図のような浮動効果の要件が必要になります。 成し遂げる標準的な通常の状況では...

Linuxでkv設定ファイルを変更するにはsedコマンドを使用します

sed は Unix の文字ストリーム エディタ、つまりストリーム エディタです。行指向であり、行単...

レスポンシブ原則と Vue2.0/3.0 の違いについての簡単な分析

序文vue3.0 が正式にリリースされて以来、多くの友人が vue3.0 に切り替えました。ここでは...

32 典型的な列/グリッドベースのウェブサイト

列ベースの Web デザインのインスピレーションをお探しの場合は、32 個のクラシックな列/グリッド...