При записи
ln -s VALUE link_name
создается символическая связь со значением VALUE
. Это то, что вы получили. Если вы хотите создать относительную ссылку, то лучше всего сделать cd в каталог, куда вы хотите поместить ссылку:
$ cd ~/bin
$ ln -s ../programming/tmux/tmux .
Завершение оболочки поможет вам.
Если все ваши пульты имеют собственных пользователей root (то есть разные каталоги /root
), со своими собственными authorized_keys
файлами, вам нужно будет отредактировать их все, чтобы добавить новый ключ:
for remote in $(seq 100); do
cat public_key.pub | ssh "remote$remote" tee -a .ssh/authorized_keys
done
Однако, вы также можете отправить закрытый ключ вашего source1 в source2. Таким образом, обе машины будут использовать одну и ту же пару ключей (которая уже зарегистрирована всеми пультами). Я не думаю, что это может привести к каким-либо конфликтам, но наличие двух ключей кажется мне более естественным. Дело в том, что поскольку все ваши машины, вероятно, находятся в одной сети и управляются одним и тем же пользователем, наличие одного скомпрометированного ключа, вероятно, нарушит всю систему. Поэтому, наличие двух не принесло бы столько безопасности (так как одного достаточно, чтобы где-то стать root)
. Подход, который необходимо принять, зависит от конкретного сценария. Было бы лучше всего, если бы в пользовательском authorized_keys
на всех серверах уже существовал ключ, который можно использовать для аутентификации при добавлении нового ключа к удаленным хостам, потому что в противном случае вам придется вводить пароль для каждого хоста.
Самый простой способ автоматизировать копирование ключа ssh на удаленную машину - это использование ssh-copy-id
, и если у вас есть серверы с именами remote1
через remote100
, то это можно сделать, используя что-то вроде следующего:
for server in $(seq -f 'remote%.0f' 1 100); do
ssh-copy-id -i ~/.ssh/id_rsa "$server"
done
Который автоматически примет открытый ключ для id_rsa
, соединит все серверы последовательно, и добавит открытый ключ к authorized_keys
. Если это единственный ключ, который у вас будет на серверах, то вам будет предложено ввести пароль для их добавления, так как программа ssh-copy-id
должна на самом деле использовать ssh на серверах.
Одним из способов автоматизировать его в дальнейшем было бы использование чего-нибудь вроде ожидать
для автоматизации входа в систему с паролем, так как клиент ssh OpenSSH не имеет возможности указать пароль из командной строки, или используя обёртку вроде sshpass
.