微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ssh自动登录,但用户控制在

如何解决ssh自动登录,但用户控制在

这是故事。 我有一个Debian 5服务器自动启动到本地用户帐户。 本地用户帐户具有以下.profile
#!/bin/bash

SERVERPASS=\"password\"
function with_password {
expect << END
set timeout 900
spawn $2
expect *assword:*
send -- \"${1}\\r\"
expect EOF
exit 0
END
}

cd /home/timecard
with_password $SERVERPASS \"ssh timecard@192.168.254.5 -p 22\"
然后,它作为用户时间卡连接到远程计算机。 但是问题是我无法正常与之交互。当我键入时,文本不会保留在远程计算机上的程序中。 但是,当我手动连接时,它工作正常。 那么,如何使用Expect命令模拟手动登录服务器?我错过命令了吗? 附言 是的,我知道自动登录是不好的,我知道ssh autologin是不好的,等等。     

解决方法

我想这里的问题是ѭ1。这意味着只有在您注销后,您的期望呼叫才会返回,因此您无法发送任何密钥给它。 没有这条线,同样的工作吗? 但是,当然,请使用公钥身份验证而不是自动密码登录。 下面的Expect脚本可用于ssh(我没有启用密码身份验证,因此我使用的是“是否要允许主机密钥”问题):
#!/usr/bin/expect -f

system ssh-keygen -R localhost
spawn ssh -o StrictHostKeyChecking=ask localhost
expect \"(yes/no)? \"
send -- \"yes\\n\"
interact
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。