linux实现免密登录

在互联网应用当中主要用途: 
1.主要是为账号安全性
2.项目发布---当jenkins进行编译生成jar文件或者其他文件,通过免密登录将文件远程传输到项目发布服务器上,并通过执行脚本命令实现服务发布(小知识点---传统脚本存放做法是放在目标项目发布服务器上,为了方便管理可以实现将脚本服务放在jenkins这台服务器上,方便管理

说明:目前该项目部署为传统做法,先目前流行用docker容器来做
 

准备:(假设当前用户是root)

服务器A:jenkins所在的服务器---请求方

服务器B:项目所在的服务器

 

1、首先进入服务A的  /root/.ssh  目录下,查看有没有已经生成好的公钥和私钥.

如果没有,生成一个公钥

ssh-keygen -t rsa

之后控制台会提示你,输入SSH key 的文件名和密码,直接回车即可。使用默认的文件名和没有密码

再次进入 /root/.ssh 目录下就有三个文件,id_rsa 为私钥,id_rsa.pub为公钥

2、把服务器A中生成 id_ras.pub  里边的内容拷贝到服务器B中的 ~/.ssh/authorized_keys  文件中(一般没有此文件,需要自己创建一下)
 
/root/.ssh 目录下执行下面这个命令

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.22         此命令就可以自动copy到目标服务器,把自己的公钥拷给对方,注意第一次需要输入该服务器的密码

此时你会发现B服务器上已经有A服务器的公钥了
3、在B服务器上修改ssh配置文件
在/etc/ssh找到sshd_config 
vi  sshd_config

// 打开注释
// RSAAuthentication yes
// PubkeyAuthentication yes
 
// PermitRootLogin yes  root用户是否可以通过ssh登录  默认yes ,这个无需修改
PasswordAuthentication yes   是否可以密码登录服务器。默认yes ,这个无需修改

保存后重新重启ssh
service sshd restart

有时候发现ssh用命令重启无效,可采用在阿里云后台进行对该服务器重启

 

4、在A服务器上进行ssh免登陆到B服务器上
ssh root@192.00.xxx.xxx

上面的图说明你已经连接成功了。如果没有连接成功或者要输入密码可以重启阿里云服务器

输入exit; 退出服务器

linux实战操作如下地址:
https://m.jb51.net/article/94599.htm


重点:如果通过ssh操作远程服务器执行简单操作,可以如下:
ssh root@47.88.78.98 "cd /usr/local ; ls"
 

基本能完成常用的对于远程节点的管理了,几个注意的点:

  • 双引号,必须有。如果不加双引号,第二个ls命令在本地执行
  • 分号,两个命令之间用分号隔开
  • 多行命令可以输入双引号后回车,结尾使用双引号包裹

例如:当jenkins来构建前端Vue服务,构建完成后将文件打包到远程服务器上并解压覆盖操作,就需要用到这个
ssh root@47.88.78.98  "cd /usr/local/web_project ; unzip -o 2004301847.zip"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值