パスワードなしの22以外のポート上のsshリモートサーバー


16

私は通常リモートサーバーに接続しています

ssh user@server.com -p 11000

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

回答:


23

まず、これを次の場所に配置し~/.ssh/configます。

Host server
HostName server.com
Port 11000
User user

できるようになりssh server、パスワードを入力します。

次に、と~/.ssh/という名前のファイルがあるかどうかを確認します。そうでない場合は、キーが設定されていないため、を使用してペアを生成する必要があります。キーにパスワードを与えることも、与えないこともできます。生成されたファイルは次のようになります。id_rsaid_rsa.pubssh-keygenid_rsa.pub

ssh-rsa lotsofrandomtext user @ local

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

または、コマンドを使用しますssh-copy-id serverserverの名前に置き換え~/.ssh/configます)。これは上記と同じことを行います。時々私はssh-copy-id立ち往生しているのを見たので、私はそれが本当に好きではありません。

これssh serverで、パスフレーズで秘密鍵を保護することを選択しない限り、ちょうどでsshできるようになります。一般に、パスフレーズを使用しない場合は、他の方法(フルディスク暗号化など)で秘密キーを保護する必要があります。

4番目(パスフレーズで秘密鍵を保護する場合にのみ必要)、これを以下に入力し~/.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

これにより、コンピューターのブートごとにパスフレーズを1回入力するだけで済みます。


2
「物語」には、その厄介なパスフレーズを常に入力するのを避ける方法についての議論も含めるべきです。:-) ssh-agentやkeychainを検討する可能性があります。
ファヒムミタ

1
また、リモートホストのユーザー名がローカルホストのユーザー名と異なる場合は、にUser user行を追加できます~/.ssh/config
cjm

@Faheemそれはいいですが、私はそのようなことを設定したことがないので、私はそれについて他の人に指示する立場にあるとは思わない:)
phunehehe

@FaheemMithaそこに行く:)
プネヘヘ14

ねえ、決して遅くない方がいい。
ファヒムミサ14


4

phuneheheの答えの補足として、参照のGentoo Linuxのキーチェーンガイドのガイドのためのキーチェーン。キーチェーンもssh-agentを使用します。ssh-agentデーモンはパスフレーズを使用可能にします(ssh-agentデーモンが終了すると使用不可になります)がreuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in、ガイドを引用するためにkeychain を使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.