如何无需密码进行SSH登录

9

如何在脚本中使用sftp而不需要用户交互(非交互式)。例如登录到匿名ftp服务器而无需手动操作。


你能访问到服务器吗?因为你需要编辑配置文件,以允许匿名连接。如果我说错了,请纠正我。希望这可以帮到你。Wesley。 - Wesley
你是在问SSH还是FTP?问题标题和问题正文似乎有冲突... - Piskvor left the building
这里有一个4分钟的视频教程 -https://www.youtube.com/watch?v=tGwk6zM_NDM - VIPIN KUMAR
4个回答

16

在您的计算机上

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或其他工具将文件复制到您的服务器。请注意保留HTML标签,但不要写出解释。
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 ~

为了修正您的家庭访问权限。

退出并重新登录


运行得非常好!!谢谢 - kmario23
文件必须是DSA格式的,而不能是RSA格式的吗? - gaussblurinc
@gassblurinc 在我的情况下,只能使用RSA - deFreitas
1
去年OpenSSH废弃了DSA密钥。除非您有特定原因,否则请使用RSA密钥。RSA密钥文件名通常为id_rsaid_rsa.pub - Kenster

14

输入以下命令:

  1. ssh-keygen

    按 Enter 键,直到出现提示符

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

    (它将要求您输入主机系统的密码)

  3. ssh root@ip_address

    现在您应该可以无需任何密码登录了


3
为了允许无需每次输入密码即可登录ssh,您需要将公钥追加到目标服务器上的~/.ssh/authorized_keys文件中。您可以在~/.ssh/id_rsa.pub中找到您的公钥,如果不存在,则可能需要生成一个。
详细答案请参见这里

2
请总结步骤,不要只发布链接。 - Dennis Williamson

0

如果你想在使用FTP脚本文件进行FTP时关闭SFTP每次传输文件都要询问YES/NO的问题,可以使用-n -i命令行参数。

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

然后,您可以使用ftp -n -i servername<ftpscript.in运行此脚本,以避免出现“是否要传输源文件?y/n”等问题。如果要在没有用户名、密码的情况下登录到FTP服务器,则需要像Wesley所述那样允许匿名登录到服务器FTP。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接