поэтому я хочу настроить закрытые / открытые ключи ssh между двумя серверами для использования с sftp (и, в конечном итоге, lftp с использованием sftp, но по одному шагу за раз).
Я создал закрытый и открытый ключи и обнаружил, что для их использования закрытый ключ должен принадлежать и быть доступным для чтения только подключающемуся пользователю.
Проблема в том, что пользователь, которого я подключаю, не имеет каталога / home / ни на одном сервере (и существует только на удаленном сервере), поэтому, когда я пытаюсь chown
, Я получил chown: invalid user: {userName}
- потому что его не существует локально.
Может ли кто-нибудь предложить способ обойти это?
--Редактировать--
я использовал getent passwd
на обоих серверах и обнаружил, что пользователь существует только на сервере, на котором я sftp
ing к. Поэтому, когда я подключаюсь как этот пользователь (sftp weirdUser@remoteHost
), как я могу это сделать с помощью закрытых / открытых ключей?
вам необходимо создать закрытый / открытый ключ SSH пользователя - это просто еще один метод аутентификации вместо аутентификации по паролю.
Итак, вам нужно создать пользователя, которому разрешено использовать пару открытых закрытых ключей. http://www.tecmint.com/add-users-in-linux/
Создайте пользователя, после чего вы сможете ПИСАТЬ с этим пользователем.
Ты нуждаешься в ~/.ssh/config
файл на вашем локальном сервере, который свяжет ваш ключ с пользователем на удаленном сервере, например:
Host yourremoteserver
User weirduser
IdentityFile /home/mylocaluser/.ssh/id_rsa
Если вы хотите создать уникальный ключ только для weirduser @ yourremoteserver, используйте -f
опция на ssh-keygen:
ssh-keygen -t rsa -b 1024 -f weirduser
и замените строку IdentifyFile в ~/.ssh/config
файл с:
IdentityFile /home/mylocaluser/.ssh/weirduser
Какой бы ключ вы ни решили использовать (id_rsa по умолчанию или weirduser), вам понадобится содержимое соответствующего файла .pub, вставленного в файл weirduser. authorized_keys
на удаленном сервере. После настройки файла конфигурации попробуйте (он запросит удаленный пароль, а затем скопируйте файл .pub в правильный authorized_keys
):
ssh-copy-id weirduser@yourremoteserver
(Или вы можете сделать это вручную)