如何SSH无密码登录

时间:2010-12-08 14:10:40

标签: ssh ksh ssh-keys

在没有用户交互的情况下在脚本中使用sftp(非交互式)。例如,登录匿名ftp服务器而不必手动。

4 个答案:

答案 0 :(得分:13)

在您的计算机上

cd ~/.ssh
ssh-keygen -t dsa

在每个提示时按回车键

Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
ad:98:43:13:c9:ea:66:8e:d0:d9:66:59:d8:3a:f7:29
The key's randomart image is:
+--[ DSA 1024]----+
|                 |
|     . .         |
|      +          |
|     + . .       |
|    o = S .      |
| . + = + .       |
|. o @ = .        |
| . B oEo .       |
|  . .  .o        |
+-----------------+

您将获得2个文件id_dsaid_dsa.pub使用scp或其他实用程序将文件复制到您的服务器

scp ~/.ssh/id_dsa.pub user@host:~/.ssh/

在您的服务器上

将新密钥添加到文件〜/ .ssh / authorized_keys。

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

最后改变访问模式;

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

验证〜

的访问模式是否正确
ls -ld ~

如果没有,你可以使用

chmod 700 ~

更正您的家庭访问权限。

退出并重新登录

答案 1 :(得分:9)

输入以下命令

  1. ssh-keygen

    按Enter键直到出现提示

  2. ssh-copy-id -i root@ip_address

    (它将一次询问主机系统的密码)

  3. ssh root@ip_address

    现在您应该可以在没有任何密码的情况下登录

答案 2 :(得分:3)

要在每次登录时不输入密码而允许ssh登录,请将公共ssh密钥附加到目标服务器上的〜/ .ssh / authorized_keys文件中。您可以在〜/ .ssh / id_rsa.pub中找到您的公钥,如果它不存在,您可能需要生成一个。

详见答案here

答案 3 :(得分:0)

可能如果你想关闭SFTP,在使用ftp脚本文件执行ftp时,每次传输文件时都会询问是/否问题,可以使用-n -i命令行参数。

    ftpscript.in
-----------------
user username pwd
get sourcefile targetfileonlocal
bye

然后,您可以使用ftp -n -i servername<ftpscript.in运行此脚本,以避免收到“您是否要传输源文件?y / n”这类问题。如果没有用户名,密码登录到ftp服务器,那么服务器ftp需要允许Wesley提到的匿名登录。