Linux:SSH指令

学习自:linux下的ssh指令详解

SSH指令的官方文档

scp 指令详细介绍_scp命令-CSDN博客

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 指令详细介绍_scp命令-CSDN博客

用法

从本地到远程: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目录下

posted @   ShineLe  阅读(986)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示