Ubuntu ssh服务端、客户端以及ssh密钥生成

ssh的下载与连接:

SSH 服务器的安装:

sudo apt-get install openssh-server

SSH 客户端的安装:

sudo apt-get install openssh-client

客户端和服务器的关系:如果,A 机器想被 B 机器远程控制,那么,A 机器需要安装 SSH 服务器,B 机器需要安装 SSH 客户端。

如使用过程中出现问题,可重启 SSH 服务器:

sudo service ssh restart

测试使用

操作命令:ssh -l username hostip

ssh : 命令

-l : 选项, 是字母“ L ”,不是数字“ 1 ”

username:被远程登录的用户名

hostip:被远程登录的 ip 地址

查看被远程登录的的ip:

在这里插入图片描述

远程登录(这里是用户 wencong ( A 机器 ) 远程登录 edu ( B 机器 ) ), 可以不用sudo :

在这里插入图片描述

SSH 告知用户,这个主机不能识别,这时键入" yes “,SSH 就会将相关信息,写入” ~/.ssh/know_hosts " 中,再次访问,就不会有这些信息了。然后输入完口令,就可以登录到主机了。接着,提示输入登陆密码:

在这里插入图片描述

登陆成功:

在这里插入图片描述在这里插入图片描述
如果想在 Windows 平台下远程登录 Linux,这时候,Windows 需要安装 xmanager 软件包。
xmanager是个软件包。包含xshell、xftp、xstart等软件。
xshell:是一个 Windows 平台下的 ssh、TELNET 和 RLOGIN 终端软件。它使得用户能轻松和安全地在 Windows 平台上访问 Unix/Linux 主机。
xftp:是一个应用于 Windows 平台的 FTP 和 SFTP 文件传输程序。xftp 能安全地在Unix/Linux 和 Windows 平台之间传输文件。
xstart:允许远程使用图形界面访问服务器,但是效率稍低,仅支持 gnome 桌面。
这里,我们使用 xshell 软件,具体详情请看:《 Linux开发环境搭建与使用——通过xshell远程连接Ubuntu》。
SSH 配置
SSH 安装的时候,没有默认的用户配置文件,我们可以根据自己需要自行配置。
如上面的例子,我们要登陆 10.221.20.16 上的 edu 用户,我们每次都得敲“ssh -l edu 10.221.20.16”。

下面介绍一下简化这个命令的方法。
在 ~/.ssh 下建立文件 config:

在这里插入图片描述

在 config 编写如下内容:

在这里插入图片描述
以后,在命令行运行“ ssh edu ” 即可登陆 10.221.20.16 上的 edu 用户:
在这里插入图片描述
注意:config 第一行内容,如果改为 Host *test ,命令则变为:ssh test。test 这个名字根据需要自定命名,敲命名时匹配上就行。
在这里插入图片描述
在这里插入图片描述
当然,还有更多别的选项,如 ForwardAgent, Compression, ForwardX11 FallBackToRsh等,这里就不一一罗列。
用“ scp ”拷贝文件和目录
SSH 提供了一些命令和 shell 用来登录远程服务器。在默认情况下,不允许用户拷贝文件,但还是提供了一个“ scp ”命令,使用方法如下:

本地文件复制到远程:

scp FileName RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp FileName RemoteHostIp:RemoteFile

本地目录复制到远程:

scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
scp -r FolderName RemoteHostIp:RemoteFolder

远程文件复制到本地:

scp RemoteUserName@RemoteHostIp:RemoteFile FileName
scp RemoteHostIp:RemoteFolder FileName
scp RemoteHostIp:RemoteFile FileName

远程目录复制到本地:

scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp -r RemoteHostIp:RemoteFolder FolderName
这里只测试一个命令,其它操作都是大同小异。

远程文件复制到本地:

scp RemoteUserName@RemoteHostIp:RemoteFile FileName
RemoteUserName:远程用户名
RemoteHostIp:远程ip
RemoteFile:远程文件,可带上路径
FileName:拷贝到本地后的名字,可带上路径,不带路径拷贝到当前目录

查看远程目录与文件:

在这里插入图片描述

查看本地目录与文件:

在这里插入图片描述

拷贝远程的文件:

在这里插入图片描述在这里插入图片描述

拷贝远程的文件可以任意修改其名字:

在这里插入图片描述

拷贝远程的文件可以指定存放路径:

在这里插入图片描述

ssh密钥使用

ssh公匙的配置:

许多 Git 服务器都使用 SSH 公钥进行认证,这就需要每个用户将自己的公钥上传到Git服务器,才能有读写权限。

1. 检查自己的电脑上是否已经存在公钥

ls -al ~/.ssh              // 如果有id_rsa.pub的文件存在,说明已经有公钥了

2. 如果没有公钥,需要生成公钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"(your_email@example.com是邮箱)   // 生成公钥
这期间会让你选择SSH公钥保存的路径,密码等

3. 添加SSH公钥到ssh-agent

eval "$(ssh-agent -s)"                        // 在后台启动 ssh-agent
ssh-add ~/.ssh/id_rsa                        // 添加SSH公钥到ssh-agent

4. 将SSH公钥上传到Git服务器

5. 测试SSH公钥是否OK,仅针对Github

ssh -T git@github.com
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值