由于某种原因,我必须使用"setsid"来运行我的所有命令.
但是,当运行"setsid scp~/aaa user1@10.170.3.17:/ tmp /"时,会出现一个请求密码的对话框.通常,提示出现在命令行中.
它是由ssh中的某些配置引起的吗?我想要消除这个盒子.怎么实现呢?
小智 5
该setsid命令的一个影响是通过setsid(1)启动的进程与其控制终端分离.在没有控制终端的情况下,scp不能仅仅因为它没有"看到"任何一个而在启动它的终端上请求密码.然而,它"看到"的是环境变量,告诉它有一个X11窗口会话,它可以显示一个图形实用程序,要求您解锁私钥SSH密钥所需的密码或密码,该密钥将用于验证远程系统.
即使您取消设置它"看到"并使用它将x11-ssh-askpass对话框路由到您的屏幕(DISPLAY),也可能无法为您产生所需的效果,因为所需的密钥将丢失并且scp操作将失败.
我在这里建议的解决方案之一是设置"无密码"登录(如果适用于给定的安全情况),使用ssh-keygen(1)生成不受密码保护的"身份密钥".
您可以探索其他可能性,例如在文件或命令行选项中提供密码短语,无论哪种方式更适合您.请查看ssh(1)联机帮助页的ENVIRONMENT部分.