在脚本中使用 sftp 而无需用户交互(非交互)。例如登录到匿名 ftp 服务器而不必手动。
4 回答
在你的电脑
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_dsa并id_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 ~
更正您的家庭访问权限。
注销并重新登录
键入以下命令
ssh-keygen按 Enter 键直到出现提示
ssh-copy-id -i root@ip_address(它会一次询问主机系统的密码)
ssh root@ip_address现在您应该无需任何密码即可登录
要允许 ssh 登录而不在每次登录时输入密码,请将您的公共 ssh 密钥附加到目标服务器上的 ~/.ssh/authorized_keys 文件中。您可以在 ~/.ssh/id_rsa.pub 中找到您的公钥,或者,如果它不存在,您可能需要生成一个。
在此处查看详细答案
可能是如果您想关闭 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 提到的匿名登录。