linux远程认证ssh/scp/sftp

参考文档:www.openssh.com

SSH

SSH,即Secure Shell,是用于安全登录远程系统的协议。
SSH是一种协议,我们常用的OpenSSH只是实现了它的一个软件。
一般情况下系统会自带openssh-client,可用于登录其他服务器。
若要被登录,则在ubuntu中你可以通过sudo apt install openssh-server的方式来安装。

ssh 远程登录服务器

# 不写用户名默认以当前用户身份登录
ssh <域名或IP地址>

# 指定用户名
ssh <用户名>:<域名或IP地址>

# 回车之后如果密钥已经配置,则会直接登录成功,否则会询问密码

sshd 修改默认端口22

我们可以通过配置文件修改默认端口22,配置文件在/etc/ssh/sshd_config
打开配置文件,我们找到 # Port 22 将其取消注释,然后修改为其他端口比如99,然后尝试连接:

理性端口号,需要重启sshd方可生效:systemctl restart sshd

禁止Root用户登录

如果想禁止Root用户远程直接登录,可以将配置文件里的PermitRootLogin设置为no

生成密钥

使用ssh-keygen生成密钥的时候,会提示输入密码,直接回车即置空。
之后使用该密钥对去登录其他服务器的时候,不需要输入额外的密码。
否则,你在其他服务器上配置过公钥之后,使用该私钥去认证,需要输入该私钥的密码。

ssh-keygen -t rsa
<Enter>
<Enter>
<Enter>

将公钥拷贝到服务器

# 端口为22则可省略 -p <port>
ssh-copy-id -p <port> <host>

scp

# 拷贝本地文件到远程服务器
scp <本地文件> -p <port> <user>@<host>:<path>  # 如果是目录加 -r

# 从服务器拷贝文件到本地
scp -p <port> <user>@<host>:<path> <本地路径>  # 如果是目录加 -r

sftp

sftp <host>
# 进入交互模式后,可以浏览传输文件
get <文件名> <本地地址>

posted @   那个白熊  阅读(517)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2019-11-23 使用 python 创建&更改 word 文档
点击右上角即可分享
微信分享提示