Linux ssh免密登陆相关

来源:互联网 发布:mac os 桌面信息白条 编辑:程序博客网 时间:2024/05/22 06:26

提纲

  1. 免密码登陆
  2. 绕过跳板机一步登陆到应用服务器
  3. 本机与远程快速交换文件
  4. 在本机执行远程命令

一、免密码登陆

步骤1. 在本机生成公私钥对

生成密钥:ssh-keygen -t rsa -C “yu12377@163.com”
默认公钥:~/.ssh/id_rsa.pub

默认私钥:~/.ssh/id_rsa
注意:过程中会与用户交互两次,一是询问公钥名称,二是询问是否需要加密,可以都直接回车采用默认的

步骤2. 将本机公钥添加到服务器公钥列表

方法1——命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub temp@x.x.x.x
注意:mac系统中没有ssh-copy-id,可以从linux系统复制一份到/usr/local/bin即可,或者采取方法2

方法2——手工:


将本机公钥复制到粘贴板:pbcopy < ~/.ssh/id_rsa.pub
登陆服务器机器,将粘贴板内容添加到服务器的~/.ssh/authorized_keys文件中,每个密钥占一行。如果没有此文件则创建,文件权限必须为600,否则无法登陆

二、绕过跳板机一步登陆到应用服务器

步骤1. 上传公钥

采取上面的方法2,将本机的公钥添加到应用服务器的~/.ssh/authorized_keys文件中
注意:文件权限为600

步骤2. 配置本机SSH代理

新建:touch ~/.ssh/config
配置如下:
Host gateway
HostName x.x.x.x
User temp
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

Host q1
HostName 10.10.4.1
User oper
ProxyCommand ssh -q -W %h:%p gateway
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
注意:gateway是在前一段中定义的别名,后一段中会引用

经过如上配置,
登陆跳板机:ssh gateway
登陆10.10.4.1:ssh q1
参考资料:http://www.cnblogs.com/lucantang/p/3315329.html

三、快速交换文件

scp命令

  • 从本机到远程:
    scp ~/test.tgz q1:/data/deploy

  • 从远程到本机:
    scp q1:/data/deploy ~/test.tgz
    注意:都是在本机上执行上面的命令,不是在远程机器上执行。

rz/sz 命令

需要单独安装:yum install lrzsz
如果是window机,则直接在远程机器上运行sz命令(将文件从远程发送到本机)和rz命令(在远程接收本机发送过去的文件)
如果是mac机,除了安装lrzsz外,还在在本机做一些配置,详情请百度

四、本机上执行远程命令

查看目录:

ssh q1 “ls -lh /data/deploy”

查看日志:

ssh q1 “tail -f /data/deploy/xxxx-xxx-xxx/logs/wrapper.log”

查询redis:

ssh gwoper “redis-cli -h x.x.x.x -a xxxxx get client:1610000003”

本地执行远程命令的好处:
1. 屏蔽网络不稳定造成的频繁掉线;
2. 即使掉线直接按方向上键调用上一条命令,再回车就能一步登陆远程,不用输入一大堆命令;
3. 简单,防止误操作;