GNU/Linux >> Linux の 問題 >  >> Linux

SSH –sshキーの生成と操作

SSHは、Linuxサーバーにリモートで接続するための主要な手段として使用される安全なプロトコルです。リモートシェルを生成することにより、テキストベースのインターフェイスを提供します。接続後、ローカル端末に入力したすべてのコマンドがリモートサーバーに送信され、そこで実行されます。

認証

クライアントは通常、パスワードまたはSSHキーのいずれかを使用して認証します。パスワードは安全性が低いため、sshキーを常にお勧めします。

SSHキーを使用して認証するには、ユーザーはローカルコンピューターにSSHキーペアを持っている必要があります。リモートサーバーでは、公開鍵をユーザーのホームディレクトリ内の~/.ssh/authorized_keysにあるファイルにコピーする必要があります。 。このファイルには、このアカウントへのログインが許可されている公開鍵のリストが1行に1つずつ含まれています。

SSHキーペアの生成

公開鍵と秘密鍵の組み合わせを生成する

ssh-keygen

# With options (Larger Number of Bits 4096 and file name)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix

# Explicit comment
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix -C citizix_key

上記のコマンドは、RSASSHキーペアを生成します。ファイルの場所が指定されていない場合は、.sshに配置されます。 ユーザーのホームディレクトリ内の隠しディレクトリ。デフォルトのファイルは次のとおりです。

  • ~/.ssh/id_rsa :秘密鍵。このファイルを共有しないでください!
  • ~/.ssh/id_rsa.pub :関連する公開鍵。これは、結果なしに自由に共有できます。

秘密鍵のパスフレーズの削除または変更

秘密鍵のパスフレーズを生成し、それを変更または削除する場合は、次のコマンドを使用します。

ssh-keygen -p

ssh-keygen -p -f ~/.ssh/id_citizix

変更する古いパスフレーズを入力します。次に、新しいパスフレーズの入力を求められます。または、Enterキーを押して空のままにすることもできます。

SSHキーのフィンガープリントを確認する

各SSHキーペアは、キーを一意に識別するために使用できる単一の暗号化「フィンガープリント」を共有します。 SSHキーのフィンガープリントを確認するには、次のように入力します。

ssh-keygen -l

ssh-keygen -l -f ~/.ssh/id_citizix

公開SSHキーをサーバーにコピーする

公開鍵をリモートサーバーにコピーすると、パスワードなしでログインできるようになります:

# This will prompt for a password
ssh-copy-id [email protected]_host

パスワードを入力すると、〜/ .ssh / id_rsa.pubキーの内容がユーザーアカウントの〜/ .ssh/authorized_keysファイルの最後に追加されます。パスワードなしでログインできるようになりました:ssh [email protected]_host

SSH-Copy-IDを使用せずに公開SSHキーをサーバーにコピーする

ssh-copy-idユーティリティを使用できないが、リモートサーバーへのパスワードベースのSSHアクセスがある場合は、公開鍵の内容を別の方法でコピーできます。

  1. コンテンツをリモートサーバーの~/.ssh/authorized_keysの下部にコピーします ファイル。

  2. キーの内容を出力して、sshコマンドにパイプすることができます。 ~/.ssh/authorized_keysに追加します ファイル。

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

その他のハック

秘密鍵から公開ssh鍵を生成します:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

リモートサーバーでの単一コマンドの実行

ssh [email protected]_host command_to_run

別のポートでサーバーにログインする

ssh -p port_num [email protected]_host

構成ファイルの使用:

# File ~/.ssh/config
Host remote_alias
    HostName remote_host
    Port port_num

パスフレーズの入力を回避するためのSSHエージェントへのSSHキーの追加

SSH秘密鍵にパスフレーズがある場合、リモートホストに接続するためにパスフレーズを使用するたびに、パスフレーズを入力するように求められます。

これを繰り返し行う必要がないように、SSHエージェントを実行できます。この小さなユーティリティは、パスフレーズを初めて入力した後、秘密鍵を保存します。ターミナルセッション中は利用できるため、将来、パスフレーズを再入力せずに接続できます。

SSHエージェントを開始するには、ローカルターミナルセッションに次のように入力します。

eval $(ssh-agent)

次に、秘密鍵をエージェントに追加して、エージェントが鍵を管理できるようにします。

ssh-add

ssh-add -f ~/.ssh/id_citizix

パスフレーズを入力する必要があります(パスフレーズが設定されている場合)。その後、IDファイルがエージェントに追加され、パスフレーズを再入力しなくても、キーを使用してサインインできるようになります。

サーバーで使用するSSHクレデンシャルの転送

パスワードなしで別のサーバー内から1つのサーバーに接続できるようにする場合は、SSHキー情報を転送する必要があります。これにより、ローカルコンピューターの資格情報を使用して、接続しているサーバーを介して別のサーバーに対して認証できるようになります。

SSHエージェントを起動し、SSHキーをエージェントに追加する必要があります。次に、オプション-Aを使用して最初のサーバーに接続します このセッションの資格情報をサーバーに転送するには

ssh -A [email protected]_host

Linux
  1. PleskでSSHキーを使用する方法

  2. SSHキーを設定する方法

  3. Ubuntu18.04でSSHキーを設定する方法

  1. SSHキーペアを生成する方法(例付き)

  2. SSH キーを別のマシンに転送するにはどうすればよいですか?

  3. AES-256-CBC で SSH ペアを生成する

  1. plinkとcmdと公開鍵を使用してsshサーバーに接続する方法

  2. Ssh –OpensshキーとPuttyキーの違いは?

  3. LinuxでSSHを使い始める