当前位置: 首页 > news >正文

linux下的SSH服务

SSH是 Secure Shell Protocol的简写,主要用于远程登录!

以前使用telnet登录(23端口)他不是加密的,而ssh(22端口)是加密的

ssh有两个重要功能

1,远程连接登录服务

2,SFTP功能(安全的FTP),可以使用scp传输文件,也是通过ssh协议工作

 

ssh结构

rpm -qa openssl openssh

openssl-1.0.1e-42.el7.x86_64       加密
openssh-6.6.1p1-11.el7.x86_64   远程连接

 

SSH配置文件

ssh配置文件(有用的)

vim  /etc/ssh/sshd_config

  • Protocol  2  #协议
  • Port   22  #端口
  • ListenAddress  10.0.0.0/24:22  #监听的IP
  • PermitEmptyPasswords  #是否允许密码为空的用户登录,默认no
  • PermitRootLogin    #是否允许root 登录,默认yes(禁止SSH登录)
  • UseDNS   #禁止反向解析
  • GSSAPIAuthentication yes   #SSH远程登录慢,关闭改为no

需要重启ssh服务才能生效

/etc/init.d/sshd restart

 

 

远程连接命令

 

 

ssh -p22 daxian@10.0.0.123 /sbin/ifconfig eth0

 

报错信息:

ssh:connect to host 10.0.0.123 port 22:Connection refused

解决办法:(连接被拒绝)

  1. 防火墙没关(/etc/init.d/iptables stop)
  2. 端口没开(更改端口 或者 服务没启)

 

 

 

基于密钥安全认证

管理服务器  相当于钥匙(私钥), 每台客户端服务器放锁(公钥)

 

 

第一步创建用户跟密码(根据上图,所有服务器都要创建用户)

useradd daxian007

echo 12345|passwd --stdin daxian007

第二步 生成密钥

su - daxian007    #切换用户

ssh-keygen
-t dsa #创建密钥对

cd .ssh
ls
id_dsa 私钥 id_dsa.pub 公钥

一键生成密钥对(脚本中经常用到)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1

 

第三部 发送公钥(发送到所有机器上)

ssh-copy-id -i .ssh/id_dsa.pub daxian007@192.168.70.125

如果端口更改了

ssh-copy-id -i .ssh/id_dsa.pub -p 22 daxian007@192.168.70.125

 

第四部 测试一下(查看IP地址)

 ssh -p22 daxian007@192.168.70.125 /sbin/ifconfig eth0

ssh -p22 daxian007@192.168.70.126 /sbin/ifconfig eth0 

命令最好使用全路径

 

 

第五步 测试 分发hosts

创建一些数据给hosts

su -

cat >>/etc/hosts<<EOF
> 192.168.70.125 web01
> 192.168.70.126 web02
> 192.168.70.127 web03
> 192.168.70.128 web04
> 192.168.70.129 web05
> EOF

su - daxian007

cp /etc/hosts ./


发送hosts给所有服务器(如果拷贝到/etc/daxian007是没有权限的)

sudo授权(所有机器)

echo "daxian007 ALL=(ALL) NOPASSWD: /usr/bin/rsync " >>/etc/sudoers
#也可以 放置cp命令 visudo
-c

开始分发

cp /etc/hosts ./
scp hosts 192.168.70.125:~ #拷贝hosts到125家目录下 hosts 100% 263 0.3KB/s 00:00
ssh -t daxian007@192.168.70.125 sudo rsync ~/hosts /etc/hosts
#使用ssh -t 执行sudo rsync 复制到/etc/下

或者 rsync加密的,增量的
rsync -avz ./hosts  -e 'ssh -p 22' daxian007@192.168.70.125:~
ssh -t daxian007@192.168.70.125 sudo rsync ~/hosts /etc/hosts

 

批量管理脚本实现

#!/bin/sh
. /etc/init.d/functions
for n in 125 126 127 128 129
do
  scp -P22 ~/hosts daxian007@192.168.70.${n}:~
  ssh -p22 -t daxian007@192.168.70.${n} sudo rsync ~/hosts /etc/hosts
done

 

转载于:https://www.cnblogs.com/sky00747/p/8135832.html

相关文章:

  • XXE攻击
  • 2017面向对象程序设计(JAVA)课程总结
  • 带环链表 linked list cycle
  • php重写路由
  • 团队冲刺第二周02
  • BZOJ2720: [Violet 5]列队春游
  • python实现购物车
  • Elasticsearch 聚合字段后 获取聚合字段的单条详细信息
  • 微信跳一跳 (亲测可用)
  • mac自带邮箱QQ邮箱无法验证用户名和密码
  • JQ 封装一个颜色插件
  • MySQL ON DUPLICATE KEY UPDATE 语法
  • Java学习 第五章 java本地文件操作
  • bzoj3998: [TJOI2015]弦论
  • 【NOIP题解】NOIP2017 TG D2T3 列队
  • [Vue CLI 3] 配置解析之 css.extract
  • __proto__ 和 prototype的关系
  • 【面试系列】之二:关于js原型
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Apache的基本使用
  • Effective Java 笔记(一)
  • golang中接口赋值与方法集
  • in typeof instanceof ===这些运算符有什么作用
  • IndexedDB
  • Less 日常用法
  • Material Design
  • PhantomJS 安装
  • SpingCloudBus整合RabbitMQ
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 从零开始的无人驾驶 1
  • 多线程事务回滚
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 简析gRPC client 连接管理
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 强力优化Rancher k8s中国区的使用体验
  • 一些css基础学习笔记
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 栈实现走出迷宫(C++)
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​iOS实时查看App运行日志
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (LeetCode 49)Anagrams
  • (pojstep1.1.2)2654(直叙式模拟)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (zhuan) 一些RL的文献(及笔记)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (一)Java算法:二分查找
  • (转) Android中ViewStub组件使用
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Micro Framework 4.2 beta 源码探析