MacBook Pro 下 Alias + ssh免密登陆 =>造成脚本提升效率

#① 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文件,有的话添加(有的话不要删掉,由于别人可能作过免密登陆呀),没有则新建一个就行vim

以上比较要注意的是: 公钥要放在登陆服务器所用的帐号的家目录下,好比你用 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~bash

###donation: 若有捐赠意向的朋友,请捐赠到支付宝帐号:qdcccc@gmail.com 帐户名:杨春炼服务器

###ask for help: 如需帮助,请加QQ:1028750558或微信:lian-ye微信

相关文章
相关标签/搜索