私たちが住んでいる接続された世界のおかげで、サーバーに物理的にアクセスする必要がなくなりました。サーバーは世界中のどこにでも配置でき、ローカルマシンからサーバーに接続できます。
この目的のために開発された多くのプロトコルとツールがあります。それらには、 telnet および ssh 。セキュリティ上の懸念から、Telnetは推奨されません。一方、sshは、リモートシステムに接続するsecurilの一般的な手段です。
この記事では、Linuxユーザーがssh経由でリモートシステムとそのリソースを使用するために知っておく必要のあるいくつかの便利なコマンドとツールについて説明します。
個人のローカルLinuxシステムで実行するコマンドのほとんどは、リモートシステムでも使用できる必要があることに注意してください(ls、cat、cdコマンドなど)。ただし、それらを実行するかどうかは、他のLinux / UNIXシステムと同様に、リモートユーザーに割り当てられた権限によって異なります。
SSHとは何ですか?
ssh またはセキュアシェルは、ネットワーク上でネットワークサービスを安全に運用するためのネットワークプロトコルです。暗号化標準を使用して、リモートシステムに安全に接続してログインします。
リモートシステムに公開鍵を保存し、クライアントシステムに秘密鍵を保存します。これらのキーは、数学的にペアとして生成されます。両方を2変数関数に適用すると、ペアが有効か無効かを確認するために使用される値になります。これは可能な限り簡単な説明です。詳細については、このページを参照してください。
sshの設定を始めましょう 本当にクールなユースケースです。
sshキーを生成
GitHubやHerokuなどのウェブサイトが sshを要求しています パスワードを入力せずにコードをプッシュ/デプロイでき、そのようなキーペアがないようにするための公開キー?心配しないで。次のコマンドを使用して、このようなsshキーペアを生成できます:
ssh-keygen
キーの場所(キーが保存される場所)とパスフレーズ(パスワードなど)の入力を求められます。パスフレーズはオプションです。
デフォルトでは、sshキーはホームディレクトリの下の.sshディレクトリに保存されます。
キーの場所が DIR_PATH / keypairforsshの場合 、2つのファイルがあります
- DIR_PATH / keypairforssh
- DIR_PATH / keypairforssh.pub
1 誰とも共有してはならない秘密鍵ファイルです
2 は、リモートシステム(メール、物理転送、その他の安全な通信ツールなどの他の信頼できる通信)およびGithub、Herokuなどのサービスとそれぞれのユースケースで共有できる公開鍵ファイルです。接続しているサービスについて十分に確認してください。
キーペアが作成されると、2つのファイルのセットとして存在します。リモートシステムに接続するには、秘密鍵を使用する必要があります。したがって、この DIR_PATH / keypairforssh 秘密鍵です。
これは
によって行われますssh-add keylocation
私たちの場合、それは
ssh-add DIR_PATH/keypairforssh
SSH経由でリモートホストに接続
秘密鍵と公開鍵が適切な場所にある場合は、この方法でシステムに接続できます。
ssh [username]@hostname
ユーザー名はリモートシステムで有効なユーザーであり、ホスト名はDNS認識可能またはIPアドレスである必要があります。これにより、sshはリモートシステムに接続して接続を要求できます。
たとえば、「 linuxhandbook」という名前のシステムに接続するには 」とユーザー名「seeni 」、使用:
ssh [email protected]
前に説明したように、上記のコマンドは、ローカルシステムの秘密鍵とリモートシステムの公開鍵を使用して、これらが有効なペアであることを確認します。キーペアが有効である場合にのみログインを許可し、使用するためのシェル(タイプはリモートシステム上のユーザーの構成によって異なります)を生成します。ローカルシステムを使用しているのと同じように、リモートシステムを使用できます。
秘密鍵がキーエージェントに追加されていないとすると、以下のようにsshログインを実行できます。
ssh -i /path/to/private/key/file [email protected]
このキーペアのチェックは通常1回行われます。 Sshは、将来の使用のために、許可されたホストのリストにリモートホストを追加します。
scpコマンドは、sshの上に構築されたツールです。これにより、ユーザーはファイルやディレクトリをリモートからクライアントに、またはその逆にコピーできます。
scpコマンドはsshを使用するため、sshと同じ要件が必要です。これは、公開鍵がリモートシステムにあり、秘密鍵がローカルシステムにある必要があることを意味します。
scp DIR_PATH_1 DIR_PATH_2
DIR_PATH_1 / DIR_PATH_2の場所 どちらもリモートまたはローカルのファイルシステムパスであるパスです。たとえば、 〜/ Documents / documentForLinux.txtを転送するには 「 linuxHandbook の / home / seeni / Documents ディレクトリ
scp ~/Documents/documentForLinux.txt [email protected]:~/Documents
同じファイルを逆方向にコピーするには、
scp [email protected]:~/Documents/documentForLinux.txt ~/Documents
リモートシステムディレクトリをクライアントにマウントするには、sshfsがツールです
この特定の目的のために開発されました。
sshfs [email protected]:/path/to/remote/folder /path/to/local/mount/point
上記のコマンドは完全に直感的です。ここで、「name」はリモートシステムで受け入れられるユーザー名であり、サーバーはリモートの「hostname」です。
一部のシステムでは、 sshfs 利用できない場合があります。必要に応じてインストールしてください。
ヒント:nohupコマンドを使用すると、SSH接続を切断した後もコマンドを実行し続けることができます。
結論
おめでとうございます、あなたは最後までやり遂げました。この記事がsshに関連するすべての基本的なコマンドとツールをカバーしていることを願っています。これらのツールは、sshを使用したリモートコンピューティングを開始するのに十分です。
関連記事では、tmateについて学ぶことができます。これは、SSHを介してターミナルセッションを共有できるようにするツールです。
この記事がお役に立てば幸いです。何か提案があれば、下のコメントセクションに自由にドロップしてください。