В этой статье я объясню, как выполнять ssh и scp без ввода пароля с помощью проверки подлинности SSH Public Key с SSH Agent на openSSH
В проверке подлинности ключей SSH есть два уровня безопасности. Для того, чтобы войти, вам нужен как частный ключ, так и пароль. Даже если один из них скомпрометирован, злоумышленник все равно не может войти в вашу учетную запись, так как оба они необходимы для входа в систему. Это гораздо лучше, чем типичная аутентификация на основе пароля, где, если пароль скомпрометирован, злоумышленник может получить доступ к системе.
Есть два способа выполнить ssh и scp без ввода пароля:
Следующие 8 шагов объясняет, как выполнять SSH и SCP от локального хоста до удаленного хоста без ввода пароля в системе openSSH
[local-host]$ ssh -V OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006 [remote-host]$ ssh -V OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006
[local-host]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter> Enter passphrase (empty for no passphrase): <Enter your passphrase here> Enter same passphrase again:<Enter your passphrase again> Your identification has been saved in /home/jsmith/.ssh/id_rsa. Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. The key fingerprint is: 31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 [email protected]
Публичный ключ и частный ключ, как правило, хранятся в папке .ssh под домашним каталогом. В этом примере он находится под /home/jsmith/.sshd. Вы не должны делиться личным ключом ни с кем.
По умолчанию ssh-keygen на openSSH генерирует ключевую пару RSA. Вы также можете создать ключевую пару DSA, используя: ssh-keygen-t dsa команду.
Скопируйте содержимое общедоступного ключа у местного хоста и вставьте его в /home/jsmith/.ssh/authorized_keys на удаленном хосте. Если /home/jsmith/.ssh/authorized_keys уже есть другой публичный ключ, вы можете придать этому конец. Если каталога .ssh под домашним каталогом на удаленном хосте не существует, пожалуйста, создайте его.
[remote-host]$ vi ~/.ssh/authorized_keys ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR [email protected]
Простыми словами, скопируйте local-host:/home/jsmith/.ssh/id_rsa.pub to remote-host:/home/jsmith/.ssh/authorized_keys
[remote-host]$ chmod 755 ~/.ssh[remote-host]$ chmod 644 ~/.ssh/authorized_keys
[local-host]$ <You are on local-host here> [local-host]$ ssh -l jsmith remote-hostEnter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102No mail. [remote-host]$ <You are on remote-host here>
Проявите, работает ли агент SSH, если не запустите его, как показано ниже.
[local-host]$ ps -ef | grep ssh-agent 511 9789 9425 0 00:05 pts/1 00:00:00 grep ssh-agent [local-host]$ ssh-agent $SHELL [local-host]$ ps -ef | grep ssh-agent 511 9791 9790 0 00:05 ? 00:00:00 ssh-agent /bin/bash 511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent
[local-host]$ ssh-addEnter passphrase for /home/jsmith/.ssh/id_rsa: <Enter your passphrase here>Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)
Ниже приведены различные варианты, доступные в ssh-добавить:
[local-host]$<You are on local-host here> [local-host]$ ssh -l jsmith remote-hostLast login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102 No mail. <ssh did not ask for passphrase this time> [remote-host]$ <You are on remote-host here>
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies