コマイムコスモス / Comaine Cosmos
目次:
- OpenSSHクライアントのインストール
- LinuxにOpenSSHクライアントをインストールする
- UbuntuおよびDebianにOpenSSHをインストールする
- CentOSおよびFedoraへのOpenSSHのインストール
- Windows 10にOpenSSHクライアントをインストールする
- macOSにOpenSSHクライアントをインストールする
ssh
コマンドの使用方法- SSH構成ファイル
- ポート転送
- ローカルポート転送
- リモートポート転送
- 動的ポート転送
- 結論
Secure Shell(SSH)は、クライアントとサーバー間の暗号化された接続に使用される暗号化ネットワークプロトコルです。 sshクライアントは、リモートマシン上のSSHサーバーへの安全な接続を作成します。 暗号化された接続を使用して、サーバー上でコマンドを実行したり、X11トンネリング、ポート転送などを実行したりできます。
無料と商用の両方で利用できるSSHクライアントがいくつかあります。OpenSSHは最も広く使用されているクライアントです。 Linux、OpenBSD、Windows、macOSなどを含むすべての主要プラットフォームで利用可能です。
、OpenSSHコマンドラインクライアント(
ssh
)を使用してリモートマシンにログインし、コマンドを実行するか、他の操作を実行する方法を説明します。
OpenSSHクライアントのインストール
OpenSSHクライアントプログラムは
ssh
と呼ばれ、端末から呼び出すことができます。 OpenSSHクライアントパッケージは、
ssh
コマンドと一緒にインストールされる
scp
や
sftp
などの他のSSHユーティリティも提供し
ssh
。
LinuxにOpenSSHクライアントをインストールする
OpenSSHクライアントは、デフォルトでほとんどのLinuxディストリビューションにプリインストールされています。 システムにsshクライアントがインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用してインストールできます。
UbuntuおよびDebianにOpenSSHをインストールする
sudo apt update
sudo apt install openssh-client
CentOSおよびFedoraへのOpenSSHのインストール
sudo dnf install openssh-clients
Windows 10にOpenSSHクライアントをインストールする
ほとんどのWindowsユーザーは、Puttyを使用してSSH経由でリモートマシンに接続しています。 ただし、Windows 10の最新バージョンにはOpenSSHクライアントとサーバーが含まれています。 両方のパッケージは、GUIまたはPowerShellを介してインストールできます。
OpenSSHパッケージの正確な名前を見つけるには、次のコマンドを入力します。
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
コマンドは次のようなものを返すはずです。
Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent
パッケージ名がわかったら、次を実行してインストールします。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
成功すると、出力は次のようになります。
Path: Online: True RestartNeeded: False
macOSにOpenSSHクライアントをインストールする
macOSには、デフォルトでOpenSSHクライアントがインストールされています。
ssh
コマンドの使用方法
SSHを介してリモートマシンにログインするには、次の要件を満たす必要があります。
- リモートマシンでSSHサーバーが実行されている必要があります。リモートマシンのファイアウォールでSSHポートが開かれている必要があります。リモートアカウントのユーザー名とパスワードを知っている必要があります。 アカウントには、リモートログインのための適切な権限が必要です。
ssh
コマンドの基本的な構文は次のとおりです。
ssh:HOST
ssh
コマンドを使用するには、ターミナルまたはPowerShellを開き、
ssh
後にリモートホスト名を入力します。
ssh ssh.linuxize.com
SSH経由で初めてリモートマシンに接続すると、次のようなメッセージが表示されます。
The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?
各ホストには、
~/.ssh/known_hosts
ファイルに保存される一意のフィンガープリントがあります。
yes
と入力してリモートフィンガープリントを保存すると、パスワードの入力を求められます。
Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:
パスワードを入力すると、リモートマシンにログインします。
ユーザー名が指定されていない場合、
ssh
コマンドは現在のシステムログイン名を使用します。
別のユーザーとしてログインするには、ユーザー名とホストを次の形式で指定します。
ssh username@hostname
ユーザー名は
-l
オプションでも指定できます。
ssh -l username hostname
デフォルトでは、ポートが指定されていない場合、SSHクライアントはポート22でリモートサーバーに接続しようとします。一部のサーバーでは、管理者がデフォルトのSSHポートを変更して、自動化された攻撃。
デフォルト以外のポートに接続するには、
-p
オプションを使用してポートを指定します。
ssh -p 5522 username@hostname
ssh -v username@hostname
詳細レベルを上げるには、
-vvv
または
-vvv
使用し
-vv
。
ssh
コマンドは多くのオプションを受け入れます。
すべてのオプションの完全なリストについては、端末で
man ssh
と入力して
ssh
マニュアルページを参照してください。
SSH構成ファイル
OpenSSHクライアントは、ユーザーごとの構成ファイル(
~/.ssh/config
)で設定されたオプションを読み取ります。 このファイルには、接続するリモートマシンごとに異なるSSHオプションを保存できます。
サンプルのSSH構成を以下に示します。
Host dev HostName dev.linuxize.com User mike Port 4422
ssh dev
入力してsshクライアントを呼び出すと、コマンドは
~/.ssh/config
ファイルを読み取り、devホストに指定されている接続の詳細を使用します。 この例では、
ssh dev
は次のものと同等です。
ssh -p 4422 [email protected]
詳細については、SSH構成ファイルに関する記事を確認してください。
公開鍵認証
SSHプロトコルは、さまざまな認証メカニズムをサポートしています。
公開鍵ベースの認証メカニズムにより、パスワードを入力しなくてもリモートサーバーにログインできます。
この方法は、認証に使用される暗号キーのペアを生成することにより機能します。 秘密キーはクライアントデバイスに保存され、公開キーはログインする各リモートサーバーに転送されます。リモートサーバーはキー認証を受け入れるように構成する必要があります。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
安全なパスフレーズを入力するように求められます。 パスフレーズを使用するかどうかはあなた次第です。
キーペアを取得したら、公開キーをリモートサーバーにコピーします。
ssh-copy-id username@hostname
リモートユーザーのパスワードを入力すると、公開鍵がリモートユーザー
authorized_keys
ファイルに追加されます。
キーがアップロードされると、パスワードの入力を求められることなく、リモートサーバーにログインできます。
キーベースの認証を設定することにより、ログインプロセスを簡素化し、サーバー全体のセキュリティを強化できます。
ポート転送
SSHトンネリングまたはSSHポートフォワーディングは、サービスポートを中継できるクライアントとサーバーマシンの間に暗号化されたSSH接続を作成する方法です。
SSH転送は、VNCやFTPなどの暗号化されていないプロトコルを使用するサービスのネットワークデータの転送、地理的に制限されたコンテンツへのアクセス、または中間ファイアウォールのバイパスに役立ちます。 基本的に、任意のTCPポートを転送し、安全なSSH接続でトラフィックをトンネルできます。
SSHポート転送には3つのタイプがあります。
ローカルポート転送
ローカルポート転送を使用すると、クライアントホストからSSHサーバーホストに接続を転送してから、宛先ホストポートに接続することができます。
ローカルポート転送を作成するには、
ssh
クライアントに
-L
オプションを渡します。
ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname
-fオプションは、バックグラウンドで実行するように
ssh
コマンドに指示し、リモートコマンドを実行しないように
-N
指示します。
リモートポート転送
リモートポート転送は、ローカルポート転送の反対です。 ポートをサーバーホストからクライアントホストに転送し、次に宛先ホストポートに転送します。
-L
オプションは、
ssh
にリモートポート転送を作成するように指示し
ssh
。
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname
動的ポート転送
動的ポート転送により、さまざまなポート間で通信できるSOCKSプロキシサーバーが作成されます。
動的ポート転送(SOCKS)を作成するには、
-D
オプションをsshクライアントに渡します。
ssh -D LOCAL_PORT -N -f username@hostname
詳細情報と詳細な手順については、SSHトンネリング(ポート転送)のセットアップ方法に関する記事を参照してください。
結論
SSH経由でリモートサーバーに接続するには、
ssh
コマンドの後にリモートユーザー名とホスト名(
ssh username@hostname
)を続けて使用し
ssh
。
ssh
コマンドの使用方法を知ることは、リモートサーバーを管理するために不可欠です。