#① MacBook Pro 下Bash Shell and Zsh 利用Alias 简化命令
直接上菜
1.编辑vim ~/.bash_profile,如果你以前没新建过,那么新建它;有的话就打开修改添加。
如果是zsh的话,vim ~/.zshrc,道理相同,在最后面追加就好咯。
2.添加alias 9.2="ssh root@192.168.9.2" !!!等号前后不能出现空格!!!
3.bash下执行"source ~/.bash_profile",此条命令是使bash重新载入配置令刚才命令生效。
如果是zsh,就source ~/.zshrc
4.以后需要使用上述复杂命令,只需在bash or zsh 中输入"9.2"即可。
now不用每次都手动输入ssh root@192.168.9.2这种命令了,但是还是需要输入密码,那么我们如何实现免密登录呢?这就是下面第二条
#② MacBook Pro 下Bash Shell 实现ssh免密登录 Mac和远程Linux服务器SSH自动登录设置 第一步:生成密钥。在终端下执行命令: ssh-keygen -t rsa 一路回车,各种提示按默认不要改,等待执行完毕。然后执行: ls ~/.ssh #可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥) #公钥是加密,私钥是解密(不要外传私钥) 第二步:放置公钥到Linux服务器。使用scp命令: scp ~/.ssh/id_rsa.pub root@192.168.9.2:/root/.ssh/ 然后把id_rsa.pub的内容加入到服务器端的默认验证文件authorized_keys,执行: #先登录到远程服务器 cd ~/.ssh cat -n /root/.ssh/id_rsa.pub >> authorized_keys #将公钥内容加入到authorized_keys文件,有的话添加(有的话不要删掉,因为别人可能做过免密登录呀),没有则新建一个就行
以上比较要注意的是: 公钥要放在登录服务器所用的账号的家目录下,比如你用 abc登录远程服务器,就要把公钥 放到 /home/abc/.ssh/下, authorized_keys文件也是在这个目录下。
如果要设置很多服务器,这样难免会麻烦很多,还是需要手动去设置很多服务器,于是我写了两个脚本
脚本一:脚本名字first.exp
#!/usr/bin/expect
set ip [lindex $argv 0]
set pw [lindex $argv 1]
spawn scp ~/.ssh/id_rsa.pub root@$ip:/root/.ssh/authorized_keys
expect "*yes/no*" {send "yes\r";exp_continue} "password:" {send "$pw\r"}
expect eof
该脚本执行即可,每次执行都需要输入两个参数,机器ip和机器密码,比如: ./first.exp 192.168.9.2 password
也可以写个脚本for循环,见脚本二:
脚本二:repeat.sh
#! /bin/sh
for num in `seq 1 6`
do
./first.exp "192.168.9.${num}" "123456"
done
执行该脚本./repeat.sh 即可同时搞定192.168.9.1——6这六台机器的免密登录~
well done~
###donation: 如有捐赠意向的朋友,请捐赠到支付宝账号:qdcccc@gmail.com 账户名:杨春炼
###ask for help: 如需帮助,请加QQ:1028750558或微信:lian-ye
来源:oschina
链接:https://my.oschina.net/u/2700824/blog/680947