SSHキー認証を使用して、異なるユーザー名でリモートシステムにログインできますか?


17

「remotesystem」という名前のリモートシステムと、そのシステム上のユーザーアカウント「foouser」があるとします。

ローカルシステムで、ローカルユーザー「foouser」としてSSHキーペアを生成し、「remotesystem」の「/home/foouser/.ssh/authorized_keys」ファイルに公開キーを配置できることを知っています。ローカルシステムから「リモートシステム」に「foouser」としてSSH接続する場合、SSHはキーペアを使用して認証します。

しかし、ローカルユーザー名がリモートシステムのユーザー名と同じでない場合はどうなりますか?つまり、ローカルユーザー「baruser」から「remotesystem」にSSH接続する場合はどうなりますか?明らかに、「baruser」のキーペアを生成し、公開キーを「/home/foouser/.ssh/authorized_keys」に追加する必要があります。次に、「baruser」としてローカルにログインしているときに「ssh foouser @ remotesystem」ができるはずです。SSHは認証にキーペアを使用します。

私はこのシナリオでキー認証を成功させようとしているので、私は尋ねています。ユーザー名の不一致が原因なのか、リモートシステム上のSSHサーバーの構成の問題なのかはわかりません。


サーバー側でログを記録しましたが、リモートユーザーのホームディレクトリのアクセス許可に問題があることがわかりました。問題が解決しました!答えてくれたすべての人に感謝します。
マットハーン2009年

回答:


11

はい、説明したとおりにこれを行うことができます。

baruser @ here〜$ ssh-add -l
4096 10:b3:fd:29:08:86:24:a6:da:0a:dd:c6:1e:b0:66:6a id_rsa(RSA)
baruser @ here〜$ ssh foouser @ remotesystem
motdメッセージなど
foouser @ remotesystem〜$

答えてくれてありがとう。クレイジーではないことはわかっていました... :-)リモートシステムのSSHサーバーの設定に何らかの問題があるため、キー認証が完全に機能していません。
マットハーン2009年

4
「ssh -V foouser @ remotesystem」を実行すると、何が問題なのかに関する情報を得ることができます。多くの場合、これは〜/ .sshの許可エラーです。
ポールトムブリン

4
-V(バージョン番号を表示)ではなく、-vvv(最大冗長度)
リーベン

10

それは少し脇ですが、.....

リモートサーバーに常に同じユーザー名を使用している場合、ssh configにホストを追加すると便利な場合があります。

Host remotesystem
    User baruser

そうすれば、ログイン時にユーザー名を指定することを覚えておく必要がなく、将来キーに問題が発生したときにそれを除外します。


5

ローカルのユーザー名は実際には関係ありません(プライベートキーがローカルユーザーのホームディレクトリ内に存在する必要があることは別として)。キーをリモートユーザーのauthorized_keysセクションにコピーするだけで機能します。


3

sshに関連する問題がある場合、最初にすることはクライアントの詳細度を上げることです。

ssh user @ machine -vvv

これで何が間違っているのかについての洞察が得られない場合は、サーバーのログレベルを変更し、デーモンを再起動する必要があります。

LogLevel DEBUG3

デバッグ出力は/var/log/auth.log(またはsshがログインするように設定されている場所)にあります。問題が見つかったら、忘れずに元の状態に戻してください。


2

両方のマシンの.sshディレクトリーの許可はかなり正確です。通常、これは.sshディレクトリで700、ホームディレクトリで最大755を意味します。.sshディレクトリ内のすべてのファイルで600に加えて。

リモートシステムのユーザーがrootの場合、rootがsshできることを確認してください。(sshd_configのPermitRootLogin)およびその公開鍵(PubkeyAuthentication)および必要に応じてRSA(RSAAuthentication)が有効になります。


RSAAuthenticationは完全に別の方法ではありませんか?
grawity

RSAは、SSHでサポートされている公開鍵アルゴリズムの1つです(DSAとともに)。これはSSH1で唯一の方法でした。
アレクサンドル・カーメル-Veilleux

2

SE Linuxを有効にしている場合は、次のことも行う必要があります。

SELinuxラベルを追加して、authorized_keyssshdからアクセスできるようにします。

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh

0

あなたは正しいことをしているように聞こえますが、authorized_keysのパーミッションが正しいことを確認してください。600に設定する必要があります。

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