Вы можете сделать оба, в основном.
а) больше ключей
Вы можете создать ключи на machine1
и скопировать открытый ключ в machine2
/home/yourusername/.ssh/authorized_keys
.
Если вы не выбрали альтернативу ниже, я бы предложил этот метод. Если кто - то получает свой секретный ключ для machine2
на machine1
он до сих пор не имеет свой секретный ключ на вашем клиенте для machine1
б) тот же ключ
Вы также можете взять открытый ключ, который вы скопировали на machine1
и поместить его на machine2
. В этом случае, вы должны скопировать ваш личный ключ machine1
успешно SSH от machine1
к machine2
Я бы не советовал, потому что ваш единственный, единственный закрытый ключ теперь доступен в удаленной системе.
альтернатива
в) ProxyCommand
Храните закрытый ключ в секрете на вашем клиенте. Скопируйте открытый ключ только в /home/yourusername/.ssh/authorized_keys
каждого компьютера. На вашем клиенте настройте /home/yourusername/.ssh/config
(при условии, что вы используете Linux на своем клиенте):
Host machine1
HostName machine1.domain.tld
Port 22 # or whichever port that is in your scenario
User yourusername
IdentityFile ~/.ssh/machine1privatekey
Host machine2
HostName hostname # resolves in the local network? If not, give its IP address here
Port 22
User yourusername
IdentityFile ~/.ssh/machine1privatekey # the same as above
ProxyCommand ssh -W machine2:22 machine1
В этом случае простой ssh machine2
соединит вас с machine2 через machine1 без необходимости сначала ssh на machine1, а затем вручную ssh на machine2.
Дополнительное преимущество: ваш закрытый ключ должен находиться только на вашем клиенте, а не в удаленной системе.
Редактировать:
d) переадресация агента SSH
Вы могли бы, вероятно, сохранить как частные ключи для machine1
и machine2
на клиентском компьютере и использовать SSH перенаправление агента , чтобы machine1
вперед закрытого ключа от клиента к machine2
Это считается рискованным, и я им не пользуюсь, но должно быть что-то вроде этого:
$ ssh-agent /bin/bash
$ ssh-add ~/.ssh/machine*privatekey
$ ssh -A -p 22 yourusername@machine1.domain.tld 'ssh -p 22 yourusernameqmachine2'