admin管理员组

文章数量:1531443

Windows10 中加入了OpenSSH客户端,可以直接利用自带的SSH客户端连接服务器。

安装

1、设置——>应用和功能——>可选功能

2、在“添加功能“添加OpenSSH客户端。

也可以用命令行直接安装。进入windows powershell(管理员)窗口,输入命令
Add-WindowsCapability -Online -Name OpenSSH-Client
安装完成之后,可执行文件的位置在“C:\Windows\System32\OpenSSH”中,且已自动加入系统环境Path变量中,你可以在Windows命令行中使用OpenSSH的组件。

OpenSSH组件的使用

OpenSSH是用于安全远程登录,命令执行和文件传输的SSH协议(版本2)的完整实现。它包括客户端ssh和服务器sshd,文件传输程序scp和密钥生成程序和工具(ssh-keygen),密钥存储(ssh-agent)等一批配套组件。官方详细文档:https://github/PowerShell/openssh-portable

登录Linux服务器

1、ssh
ssh是Secure Shell(安全外壳协议)的缩写,建立在应用层和传输层基础上的安全协议。
ssh(SSH客户端)是用于登录到远程计算机并在远程计算机上执行命令的程序。它旨在通过不安全的网络在两个不受信任的主机之间提供安全的加密通信。
在Windows10系统命令行中输入登录命令
格式:ssh username@host

ssh root@192.168.90.10

以上命令是以根用户登录ip地址为192.168.90.10的服务器,也可以用普通用户登录。

输入密码之后,enter便可以进入服务器。

2、scp 文件/目录复制程序。将文件/目录复制到客户机或服务器,用于Windows和服务器之间的文件传输。
常用的操作:
a、将本地文件复制到Linux服务器

scp -P 22  source_path usr_name@host:target_path

例如:

如上图所示,将Windows中"C:\Users\wk\Desktop"中的scp_test.txt文件复制到Linux系统中/root/目录下。登录Linux系统中后,可以查看到测试文件已上传到Linux服务器。

b、将Linux服务器中的文件复制到Windows系统中(命令中的 -P 22 可以省略,默认端口就是22号端口)

scp usr_name@host:source_path target_path

例如:

同样的,将Linux服务器的文件复制到Windows系统的目录中。

c、文件很多时,可以上传文件夹,上传文件夹和下载文件夹的指令只需要指定所传输的是文件夹。`
将本地目录复制到Linux服务器端目录下:

scp -vrp -P 22 source_path\ usr_name@host:target_path/

d、将Linux服务器目录复制到本地目录下:

scp -vrp -P 22 usr_name@host:source_path/ target_path\      

可只保留

scp -r source_path/ target_path/

注意:Windows目录是使用”\“,而Linux目录则使用的是 ”/“。

-P prot(后接SSH端口,默认为22)可省略。

-v verbose(显示详细的传输过程)

-r recursion (递归,用于传输目录及其子目录)

-p preserves modification times, access times, andmodes from the original file. (保持源文件的所有属性)

使用密钥登录服务器

1、ssh-keygen 用于身份鉴定密钥的生成、管理和转换。

ssh-keygen -t rsa  

”-t rsa“指定密钥对的加密方式为rsa算法。

(可以输入密码来保存密钥,这样即使别人拿到你的私钥也需要再次输入你设置的密码!)这样就生成了一对密钥,生成的公钥id_rsa.pub和私钥id_rsa文件存放在Windows系统用户目录~/.ssh中,本文档的是在”C:\Users\wk\.ssh“目录中。
2、将Windows系统中用户目录~/.ssh中的公钥id_rsa.pub复制到要登陆的linux服务器上的 ~/.ssh/authorized_keys 文件中。
a、使用以下命令

scp C:\Users\wk\.ssh\id_rsa.pub root@host_ip:/root/.ssh

"host_ip"为Linux服务器的ip地址。

b、登录Linux服务器,若不存在authorized_keys文件,则在/root/.ssh中创建authorized_keys文件,使用命令:

touch authorized_keys

c、将含有公钥id_rsa.pub文件追加在authorized_keys文件中,使用命令:

cat id_rsa.pub >> authorized_keys 

d、更改authorized_keys的权限。设置为拥有者可读写,其他人不可读写执行。使用命令:

chmod 600 authorized_keys

完成以上的命令之后,可以看到(下图),在Windows10的命令行窗口中不需要输入密码口令即可直接登录Linux系统。

至此,你不需要输入密码即可登录到Linux服务器,方便快速的在Linux服务器和Windows间传输文件。

注意:Windows系统中存放的私钥的权限设置。

Windows10使用私钥登录Linux服务器被拒绝时“Permissions for ‘~\id_rsa’ are too open”密钥登录被拒绝时,需要更改密钥的权限。

参考文章

1、OpenSSH 官方文档:https://github/PowerShell/openssh-portable
2、Linux密钥登录原理和ssh使用密钥实现免密码登录

本文标签: 密钥服务器OpenSSHLinux