另一个用户名的无密码ssh?


14

我想为一个Subversion项目建立一个无密码的ssh连接。现在我正在使用ssh + svn,这有点烦人,因为我想在与服务器进行交易的任何时候都必须输入密码。

我在网上找到了一些有关如何为无密码的ssh生成密钥的教程,但是它们似乎都假设我在远程系统上使用的用户名与我在家庭系统中使用的用户名相同。但是,我用于ssh + svn的用户名与我正在运行的系统上的用户帐户名不同。如何正确设置?我只是通过更改密钥文件中的名称而没有运气。

Answers:


15

您只需要在svn命令中提供另一个系统的用户名:

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

也要回答您的问题的标题:

$ ssh otheruser@othersystem

这将导致sshd远程计算机上查找~otheruser/.ssh/authorized_keys与您要在其上键入命令的计算机上的私钥相对应的公钥。


1
因此,部分说明是制作文件.ssh/id_rsa.pub,然后将其上传到远程服务器。完成后,它以localusername @ localsystem结尾。应该将其更改为remoteusername @ remotesystem,对吗?本地还是远程?
user394 2010年

5
否。只需将本地内容附加id_rsa.pubauthorized_keys远程系统上即可。会的
沃伦·杨

1
或者,许多系统都有ssh-copy-id来解决此问题:“ ssh-copy-id -i〜/ .ssh / id_rsa.pub username @ remote-machine”
Matt Simmons 2010年

不幸的是,许多人没有这样做,而且看来这不是OpenSSH的标准部分,因此该脚本至少有两个不同的实现。
沃伦·杨

如果您使用的是gnome seahorse,请自动部署密钥。
Maciej Piechotka 2010年

9

有两种方法可以做到这一点:

1)将user @放入svn网址中;这告诉svn + ssh以该用户身份登录。从维护的角度来看,我认为这是个坏主意,因为指向存储库其他部分的外部组件等无法正常工作。

2)制作一个〜/ .ssh / config(记录为ssh_config),内容如下:

Host othersystem
  User otheruser

这样,任何尝试ssh到othersystem的尝试将默认为使用otheruser。手动执行ssh以及使用svn时,这对您很方便。


5

您不必在两个mashine上都使用相同的用户名。只要您生成密钥(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。键的名称可以采用的形式,localuser@localhost仅是名称。情况可能一样好myfavouritekey@myfavouritecomputer,没有人会在意。


上面的“ cat”命令是ssh-copy-id上面提到的常见但非标准脚本的核心。我认识到这一点是因为并非我使用的所有系统都附带了ssh-copy-id,所以我多次键入类似的内容。:)
沃伦·杨

我从未听说过ssh-copy-id。我通常使用vimseahorse;)
Maciej Piechotka,2010年

0

创建.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

1
如果将其附加在authorized_keys文件中,会更好,否则它将删除其他人的发布密钥。因此,如果您使用“ cat >> .ssh / authorized_keys”编辑答案,那就更好了
Nitin Mahesh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.