04月08, 2013

mac下建立信任关系和快速登录

之前在windows下登录linux机器一般用secureCRT之类的软件,现在用了mac就不需要这些了。

如果每次登录别的机器都输入密码就非常麻烦,好在mac和linux一样,可以建立机器之间的信任关系,这样之后就可以免密码登录了。

信任关系shell脚本

#!/bin/sh

#Here's a little one liner that'll do the trick (for passwordless auth) after you've done the ssh-keygen -d:

#how to use:  /skey forum@zjm-forum-test10.zjm

if [ $# -lt 1 ]; then
    echo "usage: $0 <username@host>"
    echo " i.e.: $0 welefen@www.welefen.com"
    echo 
    exit 1
fi

if [ -f "$HOME/.ssh/id_rsa.pub" ]; then
    echo ''
else
    ssh-keygen -t rsa
fi

target="$1"
ssh "$target" 'test -d .ssh || mkdir -m 0700 .ssh ; cat >>.ssh/authorized_keys && chmod 0600 .ssh/*' < ~/.ssh/id_rsa.pub
exit $?

可以将这段代码存为Fskey,放在bin目录下,并chmod 0777 Fskey修改权限。

执行Fskey welefen@www.welefen.com就可以建立信任关系了。

这里有一点需要注意:远程机器上/home/xxx目录的权限不能是777,如果是777则建立不成功,后续ssh登录的时候还是要输入密码,可以修改为755。

快速登录

建立好信任关系后,就不用每次都输入密码了。

但是在日常开发中我们经常需要登录到很多不同的机器,一般这些机器名或者IP是比较难记住的。在secureCRT下可以建立多个连接,后续使用的时候直接点击就可以了。 但在mac下有没有什么办么?

可以通过别名来登录,实际上还是写一个简单的脚本。

#!/bin/sh
if [ $# -lt 1 ]; then
    echo "usage: go $name"
    exit 1
fi
name=$1;
case "$name" in
    "ueapp" )
        ssh welefen@www.kitgram.com;;
    "blog" )
        ssh welefen@www.flkit.org;;
    "welefen" )
        ssh welefen@www.welefen.com;;
esac

这里的ueapp,blog,welefen就是我定义的别名,由于别名肯定是我比较容易记的,所以登录机器就比较简单了。

将上面的内容存为一个shell文件,如:go

执行go ueapp就可以登录到www.kitgram.com机器上了。

本文链接:http://welefen.com/post/mac%e4%b8%8b%e5%bb%ba%e7%ab%8b%e4%bf%a1%e4%bb%bb%e5%85%b3%e7%b3%bb%e5%92%8c%e5%bf%ab%e9%80%9f%e7%99%bb%e5%bd%95-2.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。