【运维】Linux 系统 之 SSH
前言
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。 --- wiki百科
公钥私钥对
使用 ssh-keygen 创建 id_rsa 和 id_rsa.pub
ssh-keygen -t rsa -C "your_email@example.com"
[hostname ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
步骤解说
输入步骤1:
Enter file in which to save the key (/home/admin/.ssh/id_rsa)
设置保存公钥的地址
输入步骤2:
Enter passphrase (empty for no passphrase):
设置公钥密码, 默认为空, 如果设置了则需要修改连接方式 ssh -K xxx
输入步骤3:
Enter same passphrase again:
重复设置公钥密码
结束后会生成 id_rsa
(私钥)和 id_rsa.pub
(公钥) 两个文件
正文
使用场景
- 远程服务器1连接远程服务器2
- 本地拉取远程GIT代码
- 脚本部署代码
远程服务器连接
假设我现在有两台服务器
- 服务器A 10.0.0.1
- 服务器B 10.0.0.2
若想要服务器A能够不用密码登录服务器B,则需要把服务器A的 id_rsa.pub
加入服务器B某个用户的authorized_keys
, 然后执行 ssh b@10.0.0.2
第一次用服务器a连接服务器b 是都会有一段 finger 验证
The authenticity of host '10.0.0.2 (10.0.0.2)' can't be established.
RSA key fingerprint is 70:e5:23:cf:dc:03:2d:09:40:4a:2a:c6:c5:17:e2:32.
Are you sure you want to continue connecting (yes/no)?
意图是要将服务器b的公钥存放在服务器a的 ~/.ssh/know_hosts
文件里面
# 忽略输入yes/no
ssh -o StrictHostKeyChecking=no b@10.0.0.2
本地拉取远程GIT代码
假设有以下几台机器
- 本地机器 local
- 远程机器 git
以github为例, 我们将本地及其 地址为: https://github.com/settings/s...
图片如下:
我们在客户端机器上生成的 id_rsa.pub
填写至这个表单中, 这就表示github的仓库允许我们用户去拉取代码。
脚本部署代码
假设我们使用ssh-keygen
生成一组deploy
的(deploy_id_rsa.pub
)公钥,(deploy_id_rsa
)私钥。 具体执行方式
# deploy.sh# 手动开启ssh
eval $(ssh-agent -s)
# 添加deploy私钥
ssh-add ./deploy_id_rsa
# 查看ssh-agent中的密钥
ssh-add -l
# 从ssh-agent 删除 deploy密钥, 需要依靠 deploy公钥
ssh-add -d ./deploy_id_rsa.pubexport deploy_server=b@10.0.0.2
export deploy_path=/home/www/webrootssh -o StrictHostKeyChecking=no -P22 ${deploy_server} "mkdir -p ${deploy_path}/public"
ssh -o StrictHostKeyChecking=no -P22 ${deploy_server} "mkdir -p ${deploy_path}/_tmp"
scp -P22 -r build/* ${deploy_server}:${deploy_path}/_tmp
ssh -p22 ${deploy_server} "mv ${deploy_path}/public ${deploy_path}/_old && ${deploy_path}/_tmp ${deploy_path}/public"
ssh -p22 server_user@server_host "rm -rf ${deploy_path}/_old"
上述脚本的作用就是将build
的所有内容传输到 服务器b
的/home/www/webrrot/public
里面
小结
作者目前使用的道德ssh相关情况为以上几种情况, 但ssh的作用远不止上述列的几项。等到升入了解后再补充该文。 欢迎大家留言提问,及点赞收藏 !!
【运维】Linux 系统 之 SSH相关推荐
- 安全运维 | Linux系统基线检查
声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全.企业安全.国家安全. 1 查询系统信息 1 ...
- linux下进程监控6,系统运维|Linux系统监控神器-Collectl
系统资源监控 为使系统良好运转,Linux系统管理员经常需要监测cpu,内存,磁盘,网络等系统信息.Linux上已有iotop,top,free,htop,sar等丰富的常规工具来实现监测功能.今天让 ...
- 运维Linux系统中的用户管理
一.用户及用组存在的意义 1)用户存在的意义 系统资源是有限的,如何合理的分配系统资源? 在这个问题解决时必须要有连个资源配合 1.身份 account 2.授权 auth ...
- 云计算Linux运维——Linux系统——软件管理
点关注不迷路 目录 点关注不迷路 1RPM软件管理 1.软件安装包类型 2.RPM软件安装包的组成 二.RPM软件管理操作 rpm命令 1.安装软件 2.查看软件 3.卸载软件 2yum工具介绍 一. ...
- 基于Linux+Nagios+Centreon+Nagvis等构建海量运维监控系统
参考书目:<海量运维监控系统规划与部署 基于Linux+Nagios+Centreon+Nagvis等> 付哲著 系统环境规划: 基于阿里云centos6.8镜像升级到centos6.9, ...
- Linux运维-服务器系统篇
Linux运维-服务器系统篇 开篇导读: 本篇博文是此系列教程的第二课,在这一课中将大概的介绍一下服务器上的操作系统,了解一下它的基本概念和发展历程. 服务器系统的概念和作用 如何理解服务器操作系统? ...
- 江南科友 hac linux shell,运维安全审计系统(HAC 1000E、HAC 1000P)
"运维安全审计系统(HAC 1000E.HAC 1000P)"详细介绍 堡垒机.HAC.运维安全审计系统.江南科友堡垒机.内控堡垒机.运维堡垒机.HAC 1000-E.HAC 10 ...
- linux系统中ssh命令,Linux系统中SSH 命令的用法有哪些?
今天小编要跟大家分享的文章是关于Linux系统中SSH命令的用法有哪些?一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方.要亲自一台一台的去访问来管理它们显然不是最好的方法,通 ...
- 可快速部署的轻量级运维监控系统——WGCLOUD
WGCLOUD,是国人开源的一款运维监控系统,轻巧实用,具备高性能.自动化等特点,对新手来讲,几乎没有什么学习成本,上手可用,部署方便. 这是一张wgcloud运行的数据通信图 WGCLOUD的ser ...
- linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)
运维 - linux(ubuntu) 环境变量管理 (持续更新) 注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包. 一, 查看环境变量: 方法 1 ...
最新文章
- 【错误记录】Git 使用报错 ( git branch -a 仍能查询到已经删除的远程分支 )
- 004_Queue消息模式发送文本消息
- gitlab-runner 安装使用
- cmd.exe启动参数说明
- 微软宣布 Edge 浏览器将切换至 Chromium 内核
- 【Java并发.2】线程安全性
- HTML5--植物大战僵尸网页版
- 第7章页面布局-布局综合示例
- 自制ADK To Win11PE,加入原生explorer,初步修改注册表(图文1.1万字,很细) (2)
- contiki学习笔记(二)CTK图形界面
- 简单七个步骤写一份策划方案(上)
- pandas选取excel特定两列,上下行数值相减,降采样,缺失值处理,按数值范围去除行的处理,在pycharm画图实例
- android 音频裁剪(1)—MP3裁剪
- Winlogon通知包(Winlogon Notification Package)
- 我们精通那么多技术,为何还是做不好一个项目?
- Java可变长参数列表
- 定义页面元信息标记meta
- office2013视频教程免费观看
- 火爆全网!这个 Python 项目很骚气!
- python录音播放_Python实现录音和播放功能