我一直在做一个小项目,需要通过 jenkins 以安全的方式将文件从一台 Windows 机器复制到另一台。我听说过 Jenkins 中的通过 ssh 发布插件。我尝试设置它,但没有成功。有人这样做并帮助我吗?即使为了解决这个问题,我在两个 Windows 服务器上都安装了带有 cygwin 的 openssh,并尝试复制文件(通过 SCP)或仅通过 cygwin 以 linux 方式连接两个主机(通过 ssh),但总是出现错误 -
ssh 3612 tty_list::allocate_tty: 没有分配 tty 或
scp 2680 tty_list::allocate_tty: 未分配 tty
请帮忙!
答案1
您是否在 jenkins 作业配置中设置了“exec in pty”复选框以通过 ssh 发送?
在伪 tty 中执行命令
这将允许执行需要 tty 的 sudo 命令(并且可能在其他场景中也有帮助)。从 sudoers(5)手册页:
requiretty 如果设置,则 sudo 仅在用户登录到真实 tty 时运行。设置此标志后,sudo 只能从登录会话运行,而不能通过其他方式(如 cron(8) 或 cgi-bin 脚本)运行。此标志默认关闭。