Linux:SSH指令
学习自:linux下的ssh指令详解
0、常用
#远程登录 ssh miduser@192.168.10.11 #远程免密登录,如果本地有脚本要远程操作其他服务器,请先执行本命令 ssh-keygen ssh-copy-id root@172.30.65.148 #远程执行命令 ssh miduser@192.168.10.11 "ls -l" #文件传输 scp [本地文件路径] [用户名]@[IP地址]:[目标路径]
scp [本地文件路径] [IP地址]:[目标路径] scp [用户名]@[IP地址]:[目标路径] [本地文件路径] #将本地test.txt文件传到目标服务器的/home/miduser下 scp test.txt miduser@192.168.10.11 /home/miduser/
#目录传输
scp -r [本地文件路径] [IP地址]:[目标路径]
1、前言
在SSH出现之前,远程连接通常使用非安全协议,如Telnet。然而这种协议存在安全风险,因为用户的登录信息和数据传输都是明文的。SSH应运而生,通过加密和身份验证等机制,为远程连接提供了更高的安全性和保密性。
2、功能
1)远程登录和执行命令;
2)构建主机互信,方便主机之间的文件传输。
退出
①CTRL+D
②输入exit
3、用法
支持域名
#远程登录 ssh [用户名]@[IP地址] #指定端口号 ssh [用户名]@[IP地址] -p [端口号] #公钥认证登录 ssh-keygen ssh-copy-id [用户名]@[IP地址] #执行远程命令 ssh [用户名]@[IP地址] [命令] #文件传输 scp [本地文件路径] [用户名]@[IP地址]:[目标路径]
1)远程登录:ssh [用户名]@[IP地址]
通过SSH指令可以远程登录到目标主机。在指令中指定用户名和目标主机的IP地址,然后输入密码进行身份验证。
2)指定端口号:ssh [用户名]@[IP地址] -p [端口号]
如果SSH服务器的端口号不是默认的22,可以用选项-p指定端口号。
3)公钥认证登录:
ssh-keygen ssh-copy-id [用户名]@[IP]
使用ssh-keygen生成密钥对,并使用ssh-copy-id将公钥复制到目标主机,实现公钥认证登录,避免每次登录都要输入密码。
这一步完成之后会在SSH远程连接的服务器的/root/.ssh下产生2个文件:id_rsa、id_rsa.pub,其中id_rsa存放私钥,id_rsa.pub存放公钥。
补充
关于公钥、私钥的用途,可以看:ssh 公钥私钥原理_使用私钥公钥 ssh-CSDN博客
如果要实现两台远程机器之间的互信,还要分别用SSH登录到它们上,并执行以下命令:
cd /root/.ssh cat id_rsa.pub >> /root/.ssh/authorized_keys
4)执行远程命令:ssh [用户名]@[IP] [命令]
通过SSH执行远程主机上的命令,无需登录到目标主机的交互式终端5)文件传输:SCP
用法
从本地到远程:scp (参数) [本机文件路径] [用户名]@[IP]:[目标路径]
从远程到本地:scp (参数) [用户名]@[IP]:[目标路径] [本机文件路径]
从远程到远程:scp (参数) [用户名]@[IP]:[目标路径] [用户名]@[IP]:[目标路径]
参数:-1246BCFiloPpqr
参数 |
说明 |
-1 | 使用ssh协议版本1 |
-2 | 使用ssh协议版本2 |
-4 | 使用ipv4 |
-6 | 使用ipv6 |
-B | 以批处理模式运行 |
-C | 使用压缩 |
-F | 指定ssh配置文件 |
-i | 指定密钥文件,该参数会直接传递给ssh |
-l | 指定带宽限制 |
-o | 指定使用的ssh选项 |
-P | 指定远程主机的端口号 |
-p | 保留文件的m时间、a时间、权限模式 |
-q | 不显示复制进度 |
-r | 递归复制 |
例子
1)简单传输
scp root@172.30.104.56:/usr/local/test.txt /usr/local
2)递归传输目录及目录下的项目
scp -r root@172.30.104.56:/opt/soft/test /opt/soft
4、SSH连接慢的原因
1)文件系统为ro,只读状态
可以通过指令ssh root@IP "mount | grep root"的方式查看要连接的系统的文件系统的状态。
5、例子
1、远程登录
ssh miduser@192.168.10.11 ssh user@example.com
远程免密登录
ssh-keygen ssh-copy-id root@172.30.65.148 #之后有的电脑可能需要再用ssh root@172.30.65.148远程登一下这个电脑,登完再用ssh就无需重复输入密码了
2、执行远程命令
ssh miduser@192.168.10.11 "ls -l"
登录到远程主机,并执行"ls -l",返回目录的详细列表
3、文件传输
scp test.txt miduser@192.168.10.11 /home/miduser/
将本地test.txt文件传输到远程主机的/home/miduser目录下
分类:
Linux与Shell
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性