You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让OpenSSH的sftp提示输入用户名而非使用本地用户名?

如何让OpenSSH的sftp提示输入用户名而非使用本地用户名?

我来帮你解决这个问题,有两种方案正好匹配你的需求,咱们一步步说:

方案一:让sftp主动提示输入用户名

OpenSSH的sftp默认会用你本地客户端的用户名去尝试连接目标主机,但你可以通过一个小技巧让它先提示你输入用户名——在命令里把用户名留空,只写@ip_address就行。

把你脚本里的sftp命令改成这样:

echo put *.pdf | sftp @ip_address

执行脚本的时候,sftp会先弹出Username:的提示,等你输入用户名后,再要求输入密码,完全符合你“不把用户名写在脚本里”的要求。

方案二:给目标主机设置默认用户名(不用每次输入)

如果你不想每次都手动输用户名,想让sftp自动用指定的默认用户连接这个IP,可以通过ssh配置文件来实现:

  1. 找到你的ssh配置文件:

    • Windows系统:路径是C:\Users\<你的用户名>\.ssh\config(如果.ssh文件夹或config文件不存在,自己创建就行,config文件没有后缀名)
    • Linux/macOS系统:路径是~/.ssh/config
  2. 在配置文件里添加以下内容,把你的目标IP和默认用户名换成你实际的信息:

Host 你的目标IP
    User 默认用户名

比如你的目标IP是192.168.1.100,默认想用john这个用户登录,就写:

Host 192.168.1.100
    User john
  1. 之后你脚本里的sftp命令就可以简化成:
echo put *.pdf | sftp ip_address

执行时sftp会自动用你配置好的默认用户名去连接,只需要输入密码就好,用户名不用再写在脚本里。

补充说明

你之前直接用sftp ip_address失败,是因为sftp默认会用你本地客户端的用户名尝试登录,但目标服务器上要么没有这个用户,要么密码不匹配,所以才会失败。上面两种方案都能避开这个问题~

备注:内容来源于stack exchange,提问作者PGA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:48:14