web-dev-qa-db-ja.com

別のユーザー名のパスワードなしのssh?

Subversionプロジェクトでパスワードなしのssh接続を行いたいのですが。現在、私はssh + svnを使用していますが、サーバーとやり取りしたいときはいつでもパスワードを入力する必要があるため、少し面倒です。

パスワードなしのsshのキーを生成する方法について、Webでいくつかのチュートリアルを見つけましたが、リモートシステムでホームシステムと同じユーザー名を使用していることを想定しているようです。ただし、ssh + svnに使用するユーザー名は、実行中のシステムのユーザーアカウント名とは異なります。これを正しく設定するにはどうすればよいですか?鍵ファイルの名前を変更するだけではうまくいきませんでした。

15
user394

svnコマンドで他のシステムのユーザー名を指定するだけです:

$ svn co svn+ssh://otheruser@othersystem/path/to/repo

質問のタイトルにも回答するには:

$ ssh otheruser@othersystem

これにより、リモートマシンのsshdは、コマンドを入力しているマシンの秘密鍵に対応する公開鍵を~otheruser/.ssh/authorized_keysで検索します。

15
Warren Young

これを行うには2つの方法があります。

1)user @をsvn urlに入れます。これはsvn + sshにそのユーザーとしてログインするように伝えます。リポジトリーの他の部分を指す外部のようなものが正しく機能しないので、それは保守の観点からはちょっと悪い考えだと思います。

2)〜/ .ssh/config( ssh_config として文書化)を作成し、次のように記述します。

Host othersystem
  User otheruser

このようにanyothersystemにsshしようとすると、デフォルトでotheruserが使用されます。これは、sshを手動で行う場合や、svnを使用している場合に便利です。

9
pjz

両方のマシンで同じユーザー名を使用する必要はありません。キー(ssh-keygen)を生成する限り、~/.ssh/id_rsa.pubまたは~/.ssh/id_dsa.pub(キーのタイプに応じて)からローカルサーバーから行をコピーし、~/.ssh/authorized_keysに追加する必要があります。リモートで。

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

毎回remoteuserを入力したくない場合は、~/.ssh/configに追加します。

Host remoteserver
    User remoteuser

PS。キーのnamelocaluser@localhostの形式にすることができますが、それは名前のみです。 myfavouritekey@myfavouritecomputerも同様で、誰も気にしません。

6

.ssh/configを作成して実行した後:

cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

エラーが発生します:

Bad owner or permissions on /usr/share/eprints3/.ssh/config

次にchmod 600 .ssh/configを追加すると、スムーズに実行されます。

enter code here
0
prazetyo