アンドロイド

SSHコマンド

コマイネ コスモス / Comaine Cosmos

コマイネ コスモス / Comaine Cosmos

目次:

Anonim

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 コマンドの使用方法を知ることは、リモートサーバーを管理するために不可欠です。

sshターミナル