Windows免密访问linux服务器

本文主要讲解Windows下如何利用ssh和scp访问linux服务器,linux与linux间免密访问类似。

1. SSH免密登录

1. Windows上操作

SSH安装

Windows10自带,没有的话安装Openssh

生成公私钥

PS C:\> ssh-keygen -t rsa

默认情况下连续回车就好,在~\.ssh目录下生成id_rsa(私钥)和id_rsa.pub(公钥)。

输出:

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\wq/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\wq/.ssh/id_rsa.
Your public key has been saved in C:\Users\wq/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:......# 安全考虑笔者省略
The key's randomart image is:
+---[RSA 3072]----+
......# 省略
+----[SHA256]-----+

ssh-keygen用法:

ssh-keygen [-q] [-b bits] [-C comment] [-f output_keyfile] [-m format]
[-N new_passphrase] [-t dsa | ecdsa | ed25519 | rsa]
ssh-keygen -p [-f keyfile] [-m format] [-N new_passphrase]
[-P old_passphrase]
ssh-keygen -i [-f input_keyfile] [-m key_format]
ssh-keygen -e [-f input_keyfile] [-m key_format]
ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-C comment] [-f keyfile] [-P passphrase]
ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
ssh-keygen -B [-f input_keyfile]
ssh-keygen -D pkcs11
ssh-keygen -F hostname [-lv] [-f known_hosts_file]
ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file]
ssh-keygen -r hostname [-g] [-f input_keyfile]
ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
ssh-keygen -f input_file -T output_file [-v] [-a rounds] [-J num_lines]
[-j start_line] [-K checkpt] [-W generator]
ssh-keygen -I certificate_identity -s ca_key [-hU] [-D pkcs11_provider]
[-n principals] [-O option] [-V validity_interval]
[-z serial_number] file ...
ssh-keygen -L [-f input_keyfile]
ssh-keygen -A [-f prefix_path]
ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
file ...
ssh-keygen -Q -f krl_file file ...
ssh-keygen -Y check-novalidate -n namespace -s signature_file
ssh-keygen -Y sign -f key_file -n namespace file ...
ssh-keygen -Y verify -f allowed_signers_file -I signer_identity
-n namespace -s signature_file [-r revocation_file]

常用参数:
-b:指定密钥长度;
-e:读取私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。

ssh-keygen -f指定私钥保存路径后,需要按1.3.2多密钥配置来指定ssh的私钥读取。

公钥拷贝到linux服务器

scp方式拷贝

PS C:\> scp id_rsa.pub user@ip:~/.ssh/

或者ftp手动拷贝

2. Linux上操作(root用户为例)

1. 添加公钥

root@xxx $ cd ~/.ssh && touch authorized_keys //没有这个文件则创建
root@xxx $ cat id_rsa.pub >>  authorized_keys   //追加公钥,可以是多个
root@xxx $ chmod 600 authorized_keys  //文件拥有者给读写权限,不可执行
root@xxx $ cd .. && chmod 700 .ssh  //文件夹拥有者给读写执行权限

权限导致的相关问题:

  1. 更改用户组后免密登陆失败

2. 修改ssh配置

root@xxx $ vim /etc/ssh/sshd_config

vim下按 i,进入编辑模式

RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes

按ESC推出编辑,:wq保存退出,重启ssh服务端

root@xxx $ service sshd restart

3. Windows上测试

1. 单个密钥免密登录

PS C:\> ssh -p port root@ip

2. 多个密钥配置

windows上修改~/.ssh/config

Host name  //根据自己情况修改name
	HostName ip
	Port 22  //如果是docker映射的端口需要改成映射出的端口号
	User root
	IdentityFile ~\\.ssh\\id_rsa
	PreferredAuthentications publickey

简化登录:ssh ${name}

2. 免密传输

scp

免密配置如ssh一致。以下简要讲解scp用法

  1. 远程服务器文件下载
PS C:\> scp -P 22 user@ip:~/test.tar.gz /home/test.tar.gz

-P 为端口参数,22 表示更改连接SSH的端口,如果没有更改默认的SSH端口可以不用添加该参数。

  1. 获取远程服务器上的目录
PS C:\> scp -r user@ip:~/testdir  /home/testdir/

-r 参数表示递归复制(即复制该目录下面的文件和子目录);~/testdir/表示远程服务器上当前用户下的目录,最后面的/home/testdir/表示保存在本地上的路径。

  1. 将本地文件上传到服务器上
PS C:\> scp /home/test.tar.gz user@ip:~/upload.tar.gz

其余常用参数有

-4:强制使用ipv4

-6:强制使用ipv6

-v:和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 、认证 、或是配置错误 .

-C:使能压缩

ssh自带sftp

  1. sftp客户端连接
    sftp -oPort=22 root@192.168.25.137
    put /etc/hosts /tmp
    get /etc/hosts /home/omd
    
  2. 小结:
    1.linux下使用命令: sftp -oPort=22 root@x.x.x.x
    2.put将客户端本地路径上传
    3.get下载服务器端内容到本地
    4.远程连接默认连接用户的家目录

参考

ssh命令详解

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值