ssh免密登陆远程机器
1.ssh的用户配置文件config管理ssh会话,我有这样的需求就是,因为需要ssh连接到服务器,然后每次需要输入好大一长串的信息
2.而且连接到一台服务器后,还可能跳转到另外一台服务器,而且每次还需要输入密码,所以感觉非常的麻烦。
3.为了解决这个问题,我用上了ssh中的config配置文件
说明
1.如果觉得每次输入ssh 用户名@IP IP不是很好记住,可以配置一下hostname
2.vim /etc/hosts
#axure-qax
ip地址 别名
10.10.10.10 dev
10.10.10.11 test
3.以后登陆dev就可以
ssh root@dev即可
密码登陆
ssh username@hostname(或者ip) -p port (端口可省略 默认22)
ssh root@39.105.111.* -p 22
然后输入密码
配置密钥对登陆
1.~/.ssh文件
如果本机或者远程机器没有.ssh文件 mkdir -p ~/.ssh文件即可
2.生成本机密钥(如果有id_rsa.pub文件不需要重新生成)
ssh-keygen -t rsa #然后一直回车就可以了
或者
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 直接自动生成
3.拷贝本地公钥到远程机器
cd ~/.ssh
scp -i ./id_rsa.pub root@39.105.111.*:~/.ssh
4.将拷贝之后的id_rsa.pub内容添加到.ssh/authorized_keys里面(如果不存在,那么就创建一个)
cat id_rsa.pub >> .ssh/authorized_keys
5.修改远程机器的文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 700和chmod 600是因为某些特定的linux版本需要.ssh的目录为可读写执行,authorized_keys文件的权限为只可读写。而为了保证安全性,组用户、所有用户都不可以访问这个文件。
6.ssh root@39.105.111.* 就不需要输入密码了
密钥登陆
ssh -i 远程机器的pem文件 username@hostname(或者ip) -p port (端口可省略 默认22)
ssh -i dev_test.pem root@39.105.111.* -p 22
配置config文件登陆
1.先在本机.ssh/confign中配置,如果没有config,创建一个,然后将下面的(别名,主机名,端口,用户名替换即可),端口如果默认22可以不要,删除那行。
Host 别名
Hostname 主机名
Port 端口
User 用户名
IdentityFile 验证密钥名称
Host dev
Hostname 39.105.111.*
User root
IdentityFile /Users/lll/.ssh/dev_test.pem
Host pre
Hostname 39.105.111.*
User root1
IdentityFile /Users/lll/.ssh/pre_test.pem
//说明:.pem文件要事先存入指定目录,这是一个绝对路径 最后一个是文件名
1.pem文件权限如果不够,就chmod 400 dev_test.pem
2.ssh dev即可自动登录