リモートサーバーで22以外のポートをSSHに接続します。パスワードは必要ありません。

リモートサーバーで22以外のポートをSSHに接続します。パスワードは必要ありません。

私は通常、次のようにリモートサーバーに接続します。

SSH[Eメール保護]-p 11000

その後、毎回ユーザーにパスワードを入力します。 SSHを使用して接続するたびにパスワードを入力したくない場合はどうすればよいですか?

答え1

最初、これを入れて~/.ssh/config:

Host server
HostName server.com
Port 11000
User user

ssh serverその後、パスワードを入力できます。

第二、名前、およびファイルが~/.ssh/あることを確認してください。それ以外の場合はキーが設定されていないため、generate a pairを使用する必要があります。キーのパスワードを設定したり、パスワードを設定したくない場合があります。生成されたファイルは次のようになります。id_rsaid_rsa.pubssh-keygenid_rsa.pub

ssh-rsa 任意のテキストがたくさんある user@local

第三、サーバーにSSH経由で接続し、~/.ssh/authorized_keysファイルが存在しない場合はファイルを生成します。次に、前に作成したコンテンツを~/.ssh/id_rsa.pubここに追加します。これは、ファイルの内容をクリップボードにコピーし、テキスト~/.ssh/authorized_keysエディタで開き、内容を貼り付けることを意味します。

またはコマンドを使用してくださいssh-copy-id serverserverの名前に置き換えてください~/.ssh/config)。これは上記と同じことを行います。時々ssh-copy-id詰まっているのを見ることができてあまり気に入らないですね。

ssh server秘密鍵をパスワードで保護することを選択しない限り、sshを使用できます。通常、パスワードを使用しない場合は、ディスク全体の暗号化などの他の手段で秘密鍵を保護する必要があります。

第四(秘密鍵をパスワードで保護する場合のみ必要)これを入れて~/.bashrc:

start_ssh_agent() {
    # Try to use an existing agent
    save=~/.ssh-agent
    if [[ -e "$save" ]]
    then
        . "$save" > /dev/null
    fi
    # No existing agent, start a new one
    if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
    then
        ssh-agent > "$save"
        . "$save" > /dev/null
        ssh-add
    fi
}
start_ssh_agent

これにより、コンピュータを起動するたびにパスワードを一度だけ入力できます。

答え2

答え3

phuneheheの回答に加えて、以下を参照してください。Gentoo Linuxキーチェーンガイドガイドを入手キーホルダー。キーチェーンも使用SSHエージェント。 ssh-agentデーモンはパスワードを使用できますが(ssh-agentデーモンが終了すると使用できなくなります)、ガイドを引用するとreuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs inキーチェーンは使用できません。

関連情報