コンピュータにリモートでログインする必要がある場合があります。ファイルへのアクセスが必要な場合や、問題について友人を支援する必要がある場合、またはコンピューター間でファイルを転送する必要がある場合もあります。 Secure Shell(SSH)が何であれ 暗号化された接続を介して、Linux(または実際にはBSDやSolarisなどの別のUnixシステム)を実行している別のコンピューターに接続できます。リモートホストがSSH接続を受信するには、デーモンが実行されている必要があり(sshd)、ポート22への着信パケットを受け入れる必要があります。 ファイアウォールが使用されている場合。
SSHの仕組み
SSHの背後にある考え方は、ユーザーが暗号化された接続を介して端末を介してコンピューターとリモートで対話できるようにすることです。これは、送信されるデータ(ログインに使用されるユーザー名やパスワードなど)が安全であることを意味します。したがって、攻撃者がパケットスニファを使用して機密データを簡単に収集することを防ぎます。これは、インターネット経由でリモートシェル(RSH)を使用している場合に当てはまります。ログインの詳細は、プレーンテキスト(暗号化なし)としてサーバーに送信されます。
SSHのセットアップ
コンピューターがSSH接続を受信できない場合、SSHプロトコルがまだインストールされていない場合は、インストールする必要があります。 Ubuntuのようなシステムは、起動時に実行するようにSSHデーモン(sshd)を構成する必要があります。ファイアウォールが存在する場合は、ポート22またはSSHを選択して着信接続を受け入れるポートへの着信接続を許可するように設定を構成する必要がある場合もあります。
$ sudo apt install ssh
簡単なデモンストレーション
Linuxの多くの場合と同様に、リモートシェルにログインするプロセスは単純です。ターミナルを開いて、「unix_allsort」というユーザー名でマシンにログインしましょう。
$ ssh [email protected]
現在のユーザーの下でコンピューターを使用して特定のホストにログインするのがこれが初めての場合、既知の接続のリストにそのホストを受け入れるかどうかを尋ねられます。そうではなく、そのメッセージが表示された場合は、まったく別のホストである可能性があります。これは、誰かがそのコンピュータになりすましていることを示している可能性があります。
自分自身を認証すると、コンピュータに直接アクセスする場合と同じように、システム内を移動できるようになります。
そのコンピューターでSSHを使用して、別のリモートコンピューターにアクセスすることもできます。
[email protected]:~$ ssh [email protected]
リモートホストでプログラムを実行するか、SSHでリモートコマンドを実行する
SSHを使用してログインすると、リモートホストでアプリケーションを実行するオプションがあります。例としては、エディターを起動して、上記のホスト上の特定のファイルを編集する場合があります。
$ ssh -t [email protected] vim ~/Documents/list.txt
そのコンピューターを直接使用する場合と同じようにvimを使用できます。リモートホストからvimなどのプログラムを起動する場合は常に「-t」オプションが必要です。このパラメーターは、疑似端末の割り当てを強制するために使用されます。マニュアルページには、vimのような画面ベースのプログラムは、その理由からこのオプションを使用して起動する必要があると記載されています。これがない場合、一部の端末アプリが正しく機能しない可能性があります。
GUIアプリケーション
SSHは、テキストのみのプログラムではなく、FirefoxなどのX11GUIプログラムを起動する方法も提供します。
$ ssh -X [email protected]
Firefox「-X」パラメータは、シェルまたはその他の方法で命令されたときに、接続しているコンピュータが多くのXアプリケーションを起動できるようにリモートホストに指示するだけです。多くのプログラム、Webブラウザー、エディター、さらにはWineを介した一部のWindowsプログラムもこの方法で実行できます。 X上のターミナルエミュレータが実行を拒否していることがわかりました。また、X11転送の詳細については、マニュアルページを参照してください。
注: X11転送が有効になっているSSHを使用してログを記録すると、このエラーが発生する可能性があります。存在します。解決策は、ロックファイルを削除することです。複数存在する可能性があるため、次のコマンドを実行してそれらを削除します(必要に応じて強制的に):
$ rm -rf ~/.Xauthority-*
SSHセッションからログアウトし、再度ログインします。これで、Xアプリを再度実行できるようになります。
パスワードなしでSSHを設定する
クレデンシャルを入力しなくても、コンピューターにリモートログインすることができます。これには、「 ssh-keygen 」を使用して生成されたキーペアを使用して達成できる、そのような方法でコンピューターがログインできるようにコンピューターを設定する必要があります。 ’。
まず、キーを生成する必要があります。ここでは、デフォルトのままにしておくことができます。この演習のポイントは、セッションが開始されるたびに端末にパスワードまたはパスフレーズを入力することをスキップすることであるため、このキーのパスフレーズは使用しないでください。
すべてが作成されたら、IDファイルで見つかったkyをリモートコンピューターにインストールする必要があります。
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
これらの手順が正しく実行された場合、パスワードの入力を求められることなく、SSH経由でPCにログインできるはずです。
SSHに依存するツール
セキュアコピー
SCP(セキュアコピー)を使用すると、ユーザーはセキュア接続を介してリモートホストとの間でファイルをコピーできます。構文は、ファイルまたはフォルダとその宛先を指定する「cp」コマンドと非常によく似ています。次に例を示します:
$ scp ~/Documents/shopping.odt [email protected]:~/Documents
リモートコンピュータへの安全な接続を介してインターネット経由でファイルをコピーしました。フォルダについても同じことができます:
$ scp -r [email protected]:~/Documents/Reports ~/Documents
これにより、フォルダ(したがって、再帰を表す「-r」)とその内容がリモートPCからコンピュータにコピーされます。
SSHファイル転送プロトコル(SFTP)
SFTPを使用すると、SSH経由のファイル転送プロトコルを使用してファイルに安全にアクセスして送信できます。
結論
SSHを使用すると、通常の状況では、ほとんどどこからでも別のコンピューターに簡単にログインできます。 X11転送を有効にして、リモートマシンからGUIアプリを実行したり、シェルを起動する代わりにプログラムを起動したりできます。 SSHのマニュアルページ 多くの有用な情報を提供するので、それを見てください。