ssh 不用输入密码登陆

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
numbchild
帖子: 107
注册时间: 2010-03-16 12:34

ssh 不用输入密码登陆

#1

帖子 numbchild » 2011-07-19 21:53

我在网上看到一个方法可以在输入一次密码后便不用在输入密码的ssh登陆方法。
具体是这样的。
在各种ssh-copy-id remote or local 之后,
接着是
<local> $ ssh-agent $SHELL
<local> $ ssh-add
password for local .....
<local> $ ssh -l username remote-host
我想要写一个脚本或者用其他什么的方法,比如在 .bashrc 里写几个命令来省略上面都的三步。
这里要说明一点的是在ssh-agent $SHELL之后是进入了一个大概是子shell,用exit发现是在子shell里。如果写脚本的话,无法作用到子shell吧?所以比较难办。希望高手能给出个解决办法,
再或者如果你有更好的不用输入密码的办法,请告诉我,我知道如果在ssh-keygen的时候不输入密码的话,就会在copy-id之后就不用密码的。这个不安全。或者在脚本里把密码作为参数传给命令也不错。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: ssh 不用输入密码登陆

#2

帖子 eexpress » 2011-07-19 22:18

没太明白

是不是说用 ”. xxxx“执行?
● 鸣学
头像
numbchild
帖子: 107
注册时间: 2010-03-16 12:34

Re: ssh 不用输入密码登陆

#3

帖子 numbchild » 2011-07-19 22:52

eexpress 写了:没太明白

是不是说用 ”. xxxx“执行?
简单的说就是,省略下面的三步,

<local> $ ssh-agent $SHELL
<local> $ ssh-add
password for local .....
<local> $ ssh -l username remote-host

把这三步放到脚本或者 ~/.bashrc 里, 但是一些限制已经在上面提到了。
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: ssh 不用输入密码登陆

#4

帖子 fnan » 2011-07-19 23:31

想往子shell输入指令?这类的?
kose5@kose5-Aspire-4552:~$ bash <<eof
echo;echo start subshell.;echo
awk 'BEGIN{for (i=1;i<=3;i++) {system("echo " i " > $(tty);sleep 1")}}'
echo by.......
echo
exit
eof

start subshell.

1
2
3
by.......

kose5@kose5-Aspire-4552:~$
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
numbchild
帖子: 107
注册时间: 2010-03-16 12:34

Re: ssh 不用输入密码登陆

#5

帖子 numbchild » 2011-07-20 0:38

fnan 写了:想往子shell输入指令?这类的?
kose5@kose5-Aspire-4552:~$ bash <<eof
echo;echo start subshell.;echo
awk 'BEGIN{for (i=1;i<=3;i++) {system("echo " i " > $(tty);sleep 1")}}'
echo by.......
echo
exit
eof

start subshell.

1
2
3
by.......

kose5@kose5-Aspire-4552:~$
有点眉目了,想到该怎么写脚本了,谢谢。
头像
numbchild
帖子: 107
注册时间: 2010-03-16 12:34

Re: ssh 不用输入密码登陆

#6

帖子 numbchild » 2011-07-20 7:15

pocoyo 写了:sshpass 这个挺好用。
就是这个,谢谢pocoyo了。
回复