一:在用户家目录下生产秘钥对

$ ssh-keygen -t rsa  

二:查看如下,

$ ll -a .ssh/

-rw-------  1 dev dev    0 Apr 17 17:31 authorized_keys

-rw-------  1 dev dev 1675 Jun 26 22:06 id_rsa

-rw-r--r--  1 dev dev  398 Jun 26 22:06 id_rsa.pub

-rw-r--r--  1 dev dev  399 Jun 26 20:23 known_hosts


authorized_keys:存放远程免密登录的公钥。

id_rsa : 生成的私钥文件

id_rsa.pub : 生成的公钥文件

know_hosts :  该档案是纪录连到对方时,对方给的 host key

    如果希望ssh公钥生效需满足至少下面两个条件:

      1) .ssh目录的权限必须是700 

       2) .ssh/authorized_keys文件权限必须是600


三:这步是把生成的公钥追加到你需要免秘钥登录那台机器的authorized_keys里去,ssh-copy-id 会自动在免密钥机器家目录下建立.ssh目录,并把公钥写入./ssh目录下authorized.keys这个文件里。authorized_keys这个文件。我这里家目录是dev

$ ssh-copy-id -i id_rsa.pub '-p 58 dev@10.1.21.76'


注意:1:如下是ssh 端口不是22,就用-p 指定,注意加引号。

     2:公钥也可以用scp传递到你要免秘钥登录的这台机器上,然后追加到秘钥登录的这台机器的authorized_keys文件里

四:ssh 用命令直接远程查看:

$ ssh 10.1.21.76 'uptime;free;df -h'

$ ssh -t -p 58 $user@$ip 'cmd1;cmd2'

$ ssh -t -p 5860 dev@10.1.21.76 'uptime;free;df -h'