在没有用户交互的情况下在脚本中使用sftp(非交互式)。例如,登录匿名ftp服务器而不必手动。
答案 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_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 ~
更正您的家庭访问权限。
退出并重新登录
答案 1 :(得分:9)
输入以下命令
ssh-keygen
按Enter键直到出现提示
ssh-copy-id -i root@ip_address
(它将一次询问主机系统的密码)
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提到的匿名登录。