Subversionプロジェクトでパスワードなしのssh接続を行いたいのですが。現在、私はssh + svnを使用していますが、サーバーとやり取りしたいときはいつでもパスワードを入力する必要があるため、少し面倒です。
パスワードなしのsshのキーを生成する方法について、Webでいくつかのチュートリアルを見つけましたが、リモートシステムでホームシステムと同じユーザー名を使用していることを想定しているようです。ただし、ssh + svnに使用するユーザー名は、実行中のシステムのユーザーアカウント名とは異なります。これを正しく設定するにはどうすればよいですか?鍵ファイルの名前を変更するだけではうまくいきませんでした。
svn
コマンドで他のシステムのユーザー名を指定するだけです:
$ svn co svn+ssh://otheruser@othersystem/path/to/repo
質問のタイトルにも回答するには:
$ ssh otheruser@othersystem
これにより、リモートマシンのsshd
は、コマンドを入力しているマシンの秘密鍵に対応する公開鍵を~otheruser/.ssh/authorized_keys
で検索します。
これを行うには2つの方法があります。
1)user @をsvn urlに入れます。これはsvn + sshにそのユーザーとしてログインするように伝えます。リポジトリーの他の部分を指す外部のようなものが正しく機能しないので、それは保守の観点からはちょっと悪い考えだと思います。
2)〜/ .ssh/config( ssh_config として文書化)を作成し、次のように記述します。
Host othersystem
User otheruser
このようにanyothersystemにsshしようとすると、デフォルトでotheruserが使用されます。これは、sshを手動で行う場合や、svnを使用している場合に便利です。
両方のマシンで同じユーザー名を使用する必要はありません。キー(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。キーのnameはlocaluser@localhost
の形式にすることができますが、それは名前のみです。 myfavouritekey@myfavouritecomputer
も同様で、誰も気にしません。
.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