网易首页 > 网易号 > 正文 申请入驻

Linux之SSH协议知识点总结

0
分享至

Linux之SSH协议知识点总结

最近在写自动化测试用例的时候经常会用python语言去实现文件的上传下载功能,这里主要用到的就是SSH协议。为了更好的理解SSH协议,我就翻看了手头的书,回顾SSH的相关知识点,今天就把它总结下,希望对用到SSH协议的小伙伴能够有所帮助。

一、何为SSH协议?

SSH是一种不同于HTTP协议的网络协议,用于服务器之间的加密登录。如果一个用户想从本地使用SSH协议登录另一台远程服务器,需要对方服务器的用户名,密码,地址。这是目前Linux系统进行远程管理的首选方式。最开始的时候,互联网都是明文通信,一旦被截获,信息就被暴露无遗,因此很不安全,很容易被黑攻击而导致网站瘫痪。自从SSH协议问世之后,因其安全性很快成为Linux系统的标配。

二、如何配置sshd服务

我们说“Linux系统中一切皆文件”,那么作为Linux系统远程管理的首选,我们要对哪个文件做怎样的配置呢?sshd服务的配置在系统的/etc/ssh/sshd_config文件中,我们可以打开此文件看看里边都有啥配置。这个配置文件我用的最多的就是开启虚机的root权限,可以用vim文本编辑器打开此配置文件,然后把第48行#PermitRootLogin yes参数前的#去掉,然后保存文件并退出,仅仅是这样文件是没生效的,一定要记得重启sshd服务,也就是在系统中执行service sshd restart命令,这样才算真正把该虚机的root权限打开。这里附上用python语言实现该功能的代码:

def create_ssh_connect_object(ip_remote, port_remote, username, password): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: print('Connecting to {0}:{1}'.format(ip_remote, port_remote)) ssh.connect(ip_remote, port_remote, username=username, password=password, timeout=TIMEOUT) # timeout protection return ssh except: print('Failed to connect {0}, now will retry'.format(ip_remote)) ssh.connect(ip_remote, port_remote, username=username, password=password, timeout=TIMEOUT) # timeout re-try print('Retry failed, please check the IP, port, account

and password')

def permit_root_login(): """ Enable ssh connection for root """ ssh = create_ssh_connect_object(VXM_IP, 22, VXM_USER, VXM_PASSWORD) print('Connecting to new VxRail Manager with mystic') channelSSHOb = ssh.invoke_shell() remove_offending_key_cmd = 'ssh-keygen -R {0} -f /root/.ssh/known_hosts'.format(NEW_VXM_IP) channel_exe_cmd(channelSSHOb, remove_offending_key_cmd) connect_to_new_vxm_cmd = 'ssh -o "StrictHostKeyChecking no" mystic@{0}'.format(NEW_VXM_IP) if channel_exe_cmd(channelSSHOb, connect_to_new_vxm_cmd).endswith(u"Password: "): print('Entering the password for mystic') mystic_pwd = 'mystic' channel_exe_cmd(channelSSHOb, mystic_pwd) change_to_root_cmd = 'su' if channel_exe_cmd(channelSSHOb, change_to_root_cmd).endswith(u"Password: "): print('Switch user to root') root_pwd = 'Passw0rd!' channel_exe_cmd(channelSSHOb, root_pwd) print('Permit root login for SSH') permit_root_login_cmd = "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config" channel_exe_cmd(channelSSHOb, permit_root_login_cmd) restart_sshd_cmd = 'service sshd restart' channel_exe_cmd(channelSSHOb, restart_sshd_cmd) ssh.close()

三、安全密钥验证

SSH作为一种安全的远程登录协议,它是怎么实现安全验证的呢?

SSH提供了两种安全的验证方法:

1. 基于口令的验证,也就是用账户和密码来进行登录验证。如:

mystic@mystic-vm:~$ ssh root@20.10.115.201

Password:

这种方式需要用户提供用户名和密码,很像我们看的抗日战争片中,共产党想要夜袭日本的军备司令部,想要进入大门,经常会要对暗号,这个暗号就像密码,对,则放行,不对,则拦截。

2. 基于密钥的验证,这种方法类似于需要用钥匙开门,一把钥匙开一个门,钥匙不对,则门就打不开,不管你是谁。我只认钥匙。作为一个码农,这个是在我们使用Github的时候使用SSH协议克隆代码经常会用到的,我们想要在某台虚机上克隆github的代码,就先要在该虚机上生成密钥对,然后把密钥对中的公钥上传至github,让该虚机和github相互识别,然后才能成功的把代码克隆到该虚机。

四、远程传输命令

在我们的日常工作中,经常会涉及到文件在不同服务器之间的上传下载,最方便快速的方式是使用scp命令,scp也是基于SSH协议的,scp的语法格式:

把本地文件上传到远程服务器:Scp [参数] 本地文件 远程账户@远程IP 地址:/远程目录

把远程服务器文件下载到本地:Scp [参数] 远程账户@远程IP 地址:/远程目录 本地目录

使用scp命令进行文件的上传下载时,一定要写清楚文件的具体位置,如果是压缩文件,记得加参数-r进行递归操作。只要文件地址正确,远程服务器的账户密码正确,就可以开始文件的传输工作,这种方式比我们用文件传输工具传输文件更高效,省去了登录工具的麻烦,同时传输效率也更快。

以上就是我日常工作中经常用到SSH协议的使用场景,总结的可能不是很全面,毕竟认知有限,有疏漏的地方欢迎大家给予指正,如果说刚好你的工作中也需要用到这些,希望对你有所帮助。如果你还想对SSH协议有更深层次的理解,但苦于找不到好资料,这里推荐给你《Linux就该这么学》这本书,这本书的第9章很全面的介绍了SSH协议,从配置到使用都有很详细的介绍。不管你处于什么水平,都很适合你去查阅。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
刘烨儿子审美越来越偏,背帆布袋比妹妹黑,霓娜没了龅牙颜值逆袭

刘烨儿子审美越来越偏,背帆布袋比妹妹黑,霓娜没了龅牙颜值逆袭

云泽点评汇
2024-06-02 14:48:03
皇马夺得欧冠冠军后引进姆巴佩 放在NBA相当于什么?

皇马夺得欧冠冠军后引进姆巴佩 放在NBA相当于什么?

直播吧
2024-06-02 19:35:02
威廉安排浪漫度假之旅,陪凯特王妃外出散心,不带威尔士3宝

威廉安排浪漫度假之旅,陪凯特王妃外出散心,不带威尔士3宝

红袖说事
2024-06-02 21:47:30
足球报:如果国足不能晋级世预赛18强,伊万也必将面临下课

足球报:如果国足不能晋级世预赛18强,伊万也必将面临下课

直播吧
2024-06-03 09:46:11
波叔!43岁波尔含泪告别中国:对我来说,中国就像是我的第二故乡

波叔!43岁波尔含泪告别中国:对我来说,中国就像是我的第二故乡

直播吧
2024-06-02 14:16:10
洗完脚后,睡前将“藿香正气水”涂抹在脚底,或能改善这6种情况

洗完脚后,睡前将“藿香正气水”涂抹在脚底,或能改善这6种情况

今日养生之道
2024-06-03 02:03:33
“1%定律”:一个人要走大运,会有三种迹象

“1%定律”:一个人要走大运,会有三种迹象

布衣粗食68
2024-06-01 16:05:14
日本记者质问李连杰:南京大屠杀死30万人,你们数的?他说…

日本记者质问李连杰:南京大屠杀死30万人,你们数的?他说…

华人星光
2024-06-01 16:01:38
C罗又度假!一家七口海边大合影,一身腱子肉,乔治娜更美了

C罗又度假!一家七口海边大合影,一身腱子肉,乔治娜更美了

梦与体育
2024-06-03 10:25:22
中国建设银行2024年6月最新存款利率出炉:3年期定存利率最高

中国建设银行2024年6月最新存款利率出炉:3年期定存利率最高

如烟财道
2024-06-03 12:57:25
美国就差直接骂人了!美媒评076:造了一个怪物

美国就差直接骂人了!美媒评076:造了一个怪物

杂谈天下式
2024-05-31 00:28:49
印媒:中国未来50年,必打6场大战,台海首战,终战对手不是美国

印媒:中国未来50年,必打6场大战,台海首战,终战对手不是美国

娱乐叭叭君
2024-06-01 17:40:27
“紫苏”是个宝,常用它来泡水喝,或能帮助解决5个问题

“紫苏”是个宝,常用它来泡水喝,或能帮助解决5个问题

碧晴养生汇
2024-06-02 16:00:42
自带“青霉素”的3种蔬菜,建议中老年人:两天吃1次,远离生病

自带“青霉素”的3种蔬菜,建议中老年人:两天吃1次,远离生病

荷兰豆爱健康
2024-06-02 13:12:24
2024世界女排联赛澳门站中国女排0比3不敌意大利

2024世界女排联赛澳门站中国女排0比3不敌意大利

潇湘晨报
2024-06-02 21:01:21
博主直播实测:比亚迪秦L实际续航1977公里,燃油车真的完了?

博主直播实测:比亚迪秦L实际续航1977公里,燃油车真的完了?

科技Nice
2024-06-02 17:14:31
又一大老虎!落马了!!!

又一大老虎!落马了!!!

华人星光
2024-06-02 18:22:48
泽连斯基来“香会”,讲什么不重要,重要的是他做成了三件事!

泽连斯基来“香会”,讲什么不重要,重要的是他做成了三件事!

头条爆料007
2024-06-02 13:11:24
这支女子队的队服实在辣眼睛,队员不尴尬,观众看了都觉得尴尬

这支女子队的队服实在辣眼睛,队员不尴尬,观众看了都觉得尴尬

小白兔趣闻
2024-05-10 22:17:18
法国:以色列资格被取消!

法国:以色列资格被取消!

占豪
2024-06-02 03:21:58
2024-06-03 15:52:49
孙有匪
孙有匪
科技
1595文章数 2009关注度
往期回顾 全部

科技要闻

2万字演讲|黄仁勋剧透 未来3年新品有这些

头条要闻

白宫:拜登明白允许乌军使用美国武器打击俄领土的后果

头条要闻

白宫:拜登明白允许乌军使用美国武器打击俄领土的后果

体育要闻

万人空巷!皇马举行欧冠夺冠庆典

娱乐要闻

混战升级!编剧赵冬苓力挺王阳遭围攻

财经要闻

接班100天,宗馥莉急了

汽车要闻

搭载华为HiCAR 传祺M6 MAX售14.58万元

态度原创

家居
本地
手机
数码
公开课

家居要闻

静谧极简 让空间回归本质

本地新闻

食味印象|歙县限定!枇杷味儿的清甜初夏

手机要闻

荣耀Magic V Flip小折叠官宣6月13日发布 荣耀折叠屏形态已是行业最全

数码要闻

超高性价比显卡选择,蓝戟 intel显卡618选购参考

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版