LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 453|回复: 3

怎么样才能让机器启动的时候自动登录SSH?

[复制链接]
发表于 2011-10-25 10:55:38 | 显示全部楼层 |阅读模式
没有SSH的日子真的没法过了,开个谷歌翻译都要SSH了
以前我都是系统启动之后,需要SSH的时候才打开终端登录SSH的。
现在想配置一下自动登录
在终端下用key自动登录(不用输密码)已经可以了
在终端下运行的是这个命令
/usr/bin/ssh -D XXXX -CNf username@host
登录一切正常。
现在我想在系统启动的时候就自动登录
我用openbox的,把这句命令加进autostart.sh里面
但完全没有作用

请高人指点一下啊

=========问题已经解决,分割线下是解决方法==================================================

首先:
我的
.xinitrc里面是写成了
exec openbox-session

我的autostart.sh还有几个其它的命令:

fcitx&
xcompmgr &
cairo-dock&
parcellite -d&
/usr/bin/ssh -D XXXX -CNf  usrer@host&

问题就出在这些命令的“&”后台运行符上
当全部加入“&”后,一切正常。
如果
xcompmgr &
cairo-dock&
parcellite -d&

这三个任何一个不加,ssh都不会正常运行

后面来 ps -AF看了一下,全部加“&”后,autostart.sh里面的启动命令的父进程都是1,而如果任一个不加,则父进程就是启动
autostart.sh的进程,造成了ssh不能运行。

问题解决了,但原因就不知道了....
不知道是不是Shell环境变量传递的原因不?
发表于 2011-10-25 12:21:25 | 显示全部楼层
ssh能在除tty的其他地方获得输入?
试试expect
回复 支持 反对

使用道具 举报

发表于 2011-10-25 12:22:42 | 显示全部楼层
.xinitrc里面要写
exec openbox-session

写成 exec openbox 是不会加载 autostart.sh的
回复 支持 反对

使用道具 举报

发表于 2011-10-25 12:57:21 | 显示全部楼层
#!/bin/bash
auto_login_ssh () {
    expect -c "set timeout -1;
                spawn ssh -D 127.0.0.1:7070 -o StrictHostKeyChecking=no $2 ${@:3};
                expect *assword:*;
                send -- $1\r;
                interact;";
}
auto_login_ssh password  username@hostname
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表