mac删除ssh key_十分钟学会SSH+SFTP操作终端,告别XShell

点击上方“后端技术精选”,选择“置顶公众号”

技术文章第一时间送达!

>>广而告之:技术交流、讨论、学习群

1.前言

在Mac下登陆远程服务器并没有Windows那么方便的使用XShell,相比较而言,在Mac下更多的是依赖终端输入SSH命令登陆远程服务器。

使用SSH命令行的好处就是可以近距离接触底层,用的越多,用的越溜,对SSH的原理就越了解。相反,使用现成的SSH工具(PuTTY、XShell),我们其实并不会有涉及使用ssh命令的机会,对大多数人而言,怕是只知道最基本的ssh root@ip

本文将带大家了解ssh的原理与使用技巧,帮助更多终端爱好者更方便更随心所欲的使用终端。

2.SSH是什么

SSH服务其实是一个守护进程(demon),系统后台会监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。SSH服务端由2部分组成:openssh(提供ssh服务)、openssl(提供加密的程序)。

3.对称加密和非对称加密

在学习SSH的工作机制之前,我们需要了解对称加密和非对称加密的原理。

对称加密

所谓对称加密,是采用对称密码编码技术的加密措施,它的特点是文件加密和解密都是使用相同的密钥。

这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。

非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

4.SSH如何工作

了解了对称加密和非对称加密是什么之后,再来了解SSH如何使用非对称加密技术,大致流程如下:

在服务器启动的时候会产生一个密钥(也就是768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端发送的数据和IP地址,确认合法后发送密钥(768bits公钥)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,服务端利用自己的私钥解密,读取出客户端的本地私钥,建立连接通过key-pair数据传输,在此之后,服务端与客户端就愉快的使用客户端私钥进行沟通。

5.SSH命令详解

SSH命令最简单的用法只需要指定用户名和主机名参数即可,主机名可以是 IP 地址或者域名。

ssh root@192.168.0.1

指定端口号

SSH 默认连接到目标主机的 22 端口上,我们可以使用 -p 选项指定端口号。

ssh -p 22 root@192.168.0.1

追加命令

使用 SSH 在远程主机执行一条命令并显示到本地,然后继续本地工作,只需要直接连接并在后面加上要执行的命令。

ssh -p 22 root@192.168.0.1 ls -l

图形界面

在远程主机运行一个图形界面的程序,只需使用SSH的-X选项,然后主机就会开启 X11转发功能。

ssh -X 22 root@192.168.0.1

绑定源地址

如果你的客户端有多于两个以上的 IP 地址,你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器。为了解决这种情况,我们可以使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。

ssh -b 192.168.0.200 root@192.168.0.103

对所有数据请求压缩

使用 -C 选项,所有通过 SSH 发送或接收的数据将会被压缩,并且仍然是加密的。

ssh -C root@192.168.0.103

打开调试模式

因为某些原因,我们想要追踪调试我们建立的 SSH 连接情况。SSH 提供的 -v 选项参数正是为此而设的。其可以看到在哪个环节出了问题。

ssh -v root@192.168.0.103

6.SSH免密登陆

通过SSH命令登陆远程服务器需要手动的每次输入密码,解决这个问题其实非常简单,通过 ssh-keygen 生成本地公钥和私钥,将公钥Copy到远程服务器就可以。

1.构建 SSH 密钥对

使用 ssh-keygen -t +算法名,现在大多数都使用 RSA 或者 DSA 算法。

如果你在安装Git时已经做过此步骤,那么忽略这一步即可。

ssh-keygen -t rsa

2.拷贝本地公钥给远程服务器

ssh-copy-id root@192.168.25.110 

你可以通过参数 -i 指定公钥文件

ssh-copy-id -i id_dsa.pub omd@192.168.25.110

3.查看是否已经添加了对应主机的密钥

使用 -F 选项

ssh-keygen -F 192.168.0.1

4.删除主机密钥

使用-R选项,也可以在 ~/.ssh/known_hosts 文件中手动删除

ssh-keygen -R 192.168.0.1

7.如何配置 SSH

SSH 的配置文件在 /etc/ssh/sshd_config 中,你可以看到端口号,空闲超时时间等配置项。

cat /etc/ssh/sshd_config

/etc/ssh/sshd_config 配置文件详细说明

#

8.sftp是什么

SFTP是Secure FileTransferProtocol的缩写,安全文件传送协议。

SFTP和FTP是两种协议,它们是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身没有单独的守护进程,更不需要ftp服务器启动。

SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

9.sftp登陆

使用sftp登陆远程服务器,可以

sftp root@192.168.0.1

也可以指定端口号

sftp -oPort=22 root@192.168.0.1

10.使用sftp进行文件上传下载

下载

语法

get [-afPpRr] remote [local] 

下载远程文件到本地目录

get /tmp/test.c ~/

下载远程文件夹到本地目录

get -r /tmp/test.c ~/

上传

语法

put [-afPpRr] local [remote]

上传本地文件到远程文件夹

put ~/test.c /tmp/

上传本地文件夹到远程目录(会上传本地文件夹下的所有文件)

put ~/test /tmp/

11.更多sftp命令

输入 help 命令可以查看sftp支持的命令操作:

sftp> help
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afPpRr] remote [local]       Download file
reget [-fPpRr] remote [local]      Resume download file
reput [-fPpRr] [local] remote      Resume upload file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afPpRr] local [remote]       Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

执行本地命令

如果我们想在进入sftp会话环境下执行本地命令怎么办?只需要在本地命令之前加叹号!即可,示例如下:

!ls

退出会话

无论是在 ssh 还是 sftp,都可以使用 exit 退出当前会话,sftp 还可以使用 quit 命令退出。

12.结语

相信本文足以可以让你解决使用终端过程中碰到的绝大多数问题了。

我是薛勤,咱们下期见!关注我,带你领略更多编程技能!

参考文章:https://www.cnblogs.com/ftl1012/p/ssh.html

(点击即可跳转阅读)

1. SpringBoot内容聚合

2. 面试题内容聚合

3. 设计模式内容聚合

4. 排序算法内容聚合

5. 多线程内容聚合

6. 7个IntelliJ IDEA必备插件,提高编码效率

7. IntelliJ IDEA 从入门到上瘾教程,2019图文版!

看到这里了,就关注一个呗

c93d41d7cb72b85e0e7daaa69ace79bb.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSH public key是通过使用ssh-keygen命令生成的一种加密密钥公钥。在使用ssh-keygen命令时,通过指定选项-t rsa,可以生成一对RSA算法的公钥和私钥。公钥可以被分享给其他人或在服务器上配置,用于进行安全的SSH连接验证。私钥则应该妥善保管,不应该被分享或泄露。 在Jenkins,使用Publish over SSH插件时,可以将生成的公钥配置到服务器上,用于实现安全的SSH连接管理。服务器上存放的是公钥文件,而Jenkins上存放的是私钥文件,用于进行身份验证。通过这种方式,可以实现无密码连接服务器的操作。 总结来说,SSH public key是通过ssh-keygen命令生成的一种加密密钥公钥,用于进行安全的SSH连接验证。可以将公钥配置到服务器上,实现无密码连接服务器的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ssh-keygen(linux 命令) 创建 private key(私钥) , public key (公钥),实现ssh,scp,sftp命令无密码...](https://blog.csdn.net/sxzlc/article/details/126356471)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Xshell配置ssh免密码登录-密钥公钥(Public key)](https://blog.csdn.net/lgxzzz/article/details/124409658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值