passwordless ssh для другого имени пользователя?

Я хочу сделать ssh-соединение без пароля для проекта subversion. Сейчас я использую ssh + svn, и это немного раздражает, потому что я должен вводить пароль в любое время, когда я хочу совершать транзакции с сервером.

Я нашел несколько руководств в Интернете о том, как сгенерировать ключ для ssh без пароля, но все они полагают, что я использую то же имя пользователя в удаленной системе, что и для своей домашней системы. Однако имя пользователя, которое я использую для ssh + svn, отличается от имени учетной записи пользователя в системе, в которой я запущен. Как я могу настроить это правильно? Мне не повезло, просто изменив имя в ключевом файле.

Вам просто нужно указать имя пользователя другой системы в команде svn :

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

Чтобы ответить на заголовок вашего вопроса, тоже:

 $ ssh otheruser@othersystem 

Это заставляет sshd на удаленном компьютере искать в ~otheruser/.ssh/authorized_keys для открытого ключа, соответствующего закрытому ключу на машине, на которой вы вводите команду.

Есть два способа сделать это:

1) поместить пользователя @ в URL svn; это говорит svn + ssh для входа в систему как этот пользователь. Я думаю, что это плохая идея с точки зрения обслуживания, потому что такие вещи, как внешние, которые указывают на другие части хранилища, будут работать некорректно.

2) создайте файл ~ / .ssh / config (задокументированный как ssh_config ), который говорит что-то вроде:

 Host othersystem User otheruser 

таким образом любая попытка ssh для otherystem будет по умолчанию использовать 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 каждый раз, remoteuser к ~/.ssh/config :

 Host remoteserver User remoteuser 

PS. Имя ключа может быть в виде 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