Mac 环境下面--------
远程主机ip:HostIpAddress
如果没有 key 话需要自己生成,或找同事索取.
1.生成key
如果本地有id_rsa和id_rsa.pub这两个文件就不要再生成一次了,否则之前已经设置好的网站就白弄了。
ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment] [-f output_keyfile]
ssh-keygen -t rsa
2.把公钥id_rsa.pub拷到远程主机上面去
scp /.ssh/id_rsa.pub user@HostIpAddress:~/.ssh/ir.pub (这里没用id_rsa.pub是因为防止把远程主机上的公钥覆盖)
3.把公钥id_rsa.pub追加到授权文件中
cat ~/.ssh/ir.pub >> ~/.ssh/authorized_keys
如果authorized_keys不存在,则创建之 touch ~/.ssh/authorized_keys(# 注意: 必须将~/.ssh/authorized_keys的权限改为600, 该文件用于保存ssh客户端生成的公钥,可以修改服务器的ssh服务端配置文件/etc/ssh/sshd_config来指定其他文件名)
mac中的文件是/etc/sshd_config
The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
4.回到本地主机,免密码登陆远程主机
ssh root@HostIpAddress(默认使用的是~/.ssh/id_rsa)
假如在生成密钥公钥对文件时用-f指定了其他的文件名,需要使用-i来指定私钥文件
ssh root@HostIpAddress -i /path/to/your_id_rsa
或者在全局配置文件/etc/ssh_config(本地配置文件~/.ssh/config,没有则创建之,一定注意配置书写格式.不然换出问题)中添加如下配置:
Host RemoteHostIpAddress
IdentityFile /path/to/your_id_rsa
方便小技巧:
1.为每个服务器指定私钥公钥对文件
通过在~/.ssh/config中配置可以实现为每个服务器指定不同的配置文件
Host HostIpAddress
IdentityFile /path/to/your_id_rsa
2.每次登陆时仍然要ssh root@RemoteHostIpAddress,ipAddress不好记,怎么办?
在/etc/hosts中添加自己容易记的主机名
例如:
192.168.11.222 hackathon
这样登录时就可以使用ssh root@hackathon了。
不过要~/.ssh/config也要改一下:
Host hackathon
IdentityFile /path/to/your_id_rsa
3.指定登陆用户
Host hackathon
IdentityFile /Users/user1/.ssh/hackathon_rsa
user root
这样每次登陆时,就可以直接ssh hackathon了,并且是以root用户登陆的。
4.session copy,多次登陆只输入一次密码
在~/.ssh/config中添加如下3行,只要在已经有一个terminal登录到aaa.bbb.com中后就可以session copy然后免密码登陆了。
Host aaa.bbb.com
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
5.登陆就是执行很少的命令,不登陆能不能执行命令?
登陆一次忙活半天,登陆上去了就执行很少的命令,能不能不登陆了?
可以
ssh hackathon “your command”
例如:
user1@user1deMacBook-Pro:~/.ssh$ ssh hackathon “ls /”
bin
boot
data
dev
etc
home
…
6.安装sshpass
sudo apt-get install sshpass
安装完成后使用sshpass允许你用 -p 参数指定明文密码,然后直接登录远程服务器。例如:
sshpass -p ‘你的密码’ ssh 用户名@服务器ip地址
用 ‘-p’ 指定了密码后,还需要在后面跟上标准的 ssh 连接命令。
7.other错误处理
如果连接时出现如下的错误:
Agent admitted failure to sign using the key
则使用 ssh-add 指令将私钥加进来 (根据命名不同更改 id_rsa)
ssh-add ~/.ssh/id_rsa
---------------------------------------要是别人给你的证书是 .ppk 怎么办 别急 !!!-------------------------------------------------------------------------
- 使用Homebrew安装putty(homebrew是Mac下的包管理工具):
$brew install putty
同时会安装puttygen。
- 使用puttygen从.ppk文件产生.pem文件:
$puttygen privatekey.ppk -O private-openssh -o privatekey.pem
注意:前面一个是大写O,后面一个小写o。
- 使用.pem远程登录
¥ssh -i privatekey.pem user@my.server.com