快捷搜索:  汽车  科技

linux怎么连接sftp(Linux-SFTPSSH免密码登录)

linux怎么连接sftp(Linux-SFTPSSH免密码登录)屏幕显示内容均可直接以回车使用默认项,此时在$home/.ssh目录下生成I d_rsa私钥(private key)及id_rsa.pub公钥(public key)两个文件。ssh-keygen –t rsa最后,远程系统的sshd会得出结论我们拥有匹配的private key允许我们登录。1) 登陆服务端主机,在当前用户根目录执行(以RSA算法为例)如下命令:

概述

Public Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接。

Public Key认证的基础在于一对密钥,public key和private key public key对数据进行加密而且只能用于加密,private key 只能对所匹配的public key加密过的数据进行解密。

我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。

此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。

最后,远程系统的sshd会得出结论我们拥有匹配的private key允许我们登录。

SFTP免密码登录操作方法

1) 登陆服务端主机,在当前用户根目录执行(以RSA算法为例)

如下命令:

ssh-keygen –t rsa

  • 1

屏幕显示内容均可直接以回车使用默认项,此时在$home/.ssh目录下生成I d_rsa私钥(private key)及id_rsa.pub公钥(public key)两个文件。

2) 将服务端的$home/.ssh/id_rsa.pub文件上传到客户端机的$home/.ssh目录下

通过scp命令传到 客户端

scp $home/.ssh/id_rsa.pub username@client_ip:$home/.ssh

  • 1

在客户端机$home/.ssh目录下执行命令:

确认权限 。

r 4 w 2 x 1

chmod 644 dir 通过chmod 赋权限。

实操

以下操作的是同一台主机, 一般都用于两台主机之间。

[root@entel2 ~]# cd $HOME

[root@entel2 ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

79:e6:c1:13:7d:05:39:8a:c8:e8:84:9f:8e:c6:0e:0f root@entel2

The key's randomart image is:

--[ RSA 2048]----

| .o.|

| . o. |

| . o ....... |

| . o oo.... |

| .S * |

| o |

| E. o . |

| . |

| oo |

-----------------

[root@entel2 ~]# cd .ssh/

[root@entel2 .ssh]# ll

total 24

-rw------- 1 root root 1671 Nov 3 14:05 id_rsa

-rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub

[root@entel2 .ssh]# cat id_rsa.pub >>authorized_keys

[root@entel2 .ssh]# ll

total 28

-rw-r--r-- 1 root root 393 Nov 3 14:08 authorized_keys

-rw------- 1 root root 1671 Nov 3 14:05 id_rsa

-rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub

[root@entel2 .ssh]# sftp root@10.45.7.198

Connecting to 10.45.7.198...

The authenticity of host '10.45.7.198 (10.45.7.198)' can't be established.

RSA key fingerprint is 5f:b5:f8:02:5a:b0:ad:6b:10:ce:6a:cc:53:55:68:c7.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.45.7.198' (RSA) to the list of known hosts.

sftp> exit

查看目录 出现了 known_hosts

[root@entel2 .ssh]# ll

total 32

-rw-r--r-- 1 root root 393 Nov 3 14:08 authorized_keys

-rw------- 1 root root 1671 Nov 3 14:05 id_rsa

-rw-r--r-- 1 root root 393 Nov 3 14:05 id_rsa.pub

-rw-r--r-- 1 root root 393 Nov 3 14:09 known_hosts

[root@entel2 .ssh]# cat known_hosts

10.45.7.198 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1WCBN8XDrGX2Ersub6U8CDtY2a0Ug5YT9fvqTcJm DCQVj/DZVyvc5ODBC03iDp54ugSOToFluo1RabJjrTEZGMWjYKCZzEXRYO3sq4waGIP1D27bYLs9GW23VZUP0qwpmPKuJs8Asx7S1m9knoQO wIeyQQt0gkw3TKM4QJSPAsfqSl0XuSTOczS9kbNTGOCpYoB7kThsE8Q87OqRLfjR2ePN3bDTL6RKX8iDm2PelQ2g oAQCCmWlUF11TYwBahN0bKY7rNPsEQWlYpk0QGdNVTwMGy1j2DrlzoLSyuLfMu5 NgPVgx9MKmLfQlPVdFQyb/n5NShGxG VAPA 6CQ==

[root@entel2 .ssh]# ssh root@10.45.7.198

Last login: Thu Nov 3 14:06:17 2016 from 10.45.22.168

[root@entel2 ~]# sftp root@10.45.7.198

Connecting to 10.45.7.198...

sftp>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

ssh特别慢故障

背景:

我们的应用中的QDG上传文件特别慢,文件目录很小,但是传了5个小时才传完,发现命令执行sftp/ssh 本机,也是非常的卡。 问题有可能出现在这里。


过程:

用 ssh -v 目标IP 来查看详细的连接建立过程


解决:

使用root用户调整 /etc/ssh/ssh_config 修改 GSSAPIAuthentication yes 改为no


使用以下命令查看看ssh 连接时间

time ssh xgj@172.25.146.14 exit

  • 1

修改配置后,重新启动QDG,秒传,问题得到解决。


常见解决方法:

1、在ssh服务端上更改/etc/ssh/sshd_config文件中的配置为如下内容:

UseDNS no

# GSSAPI options

GSSAPIAuthentication no

  • 1
  • 2
  • 3

然后,执行/etc/init.d/sshd restart重启sshd进程使上述配置生效,在连接一般就不慢了。

2、如果还慢的话,检查ssh服务端上/etc/hosts文件中,127.0.0.1对应的主机名是否和 uname -n的结果一样,或者把本机ip和hostname(uname -n结果)加入到/etc/hosts里。

[xgj@entel2 ~]$ uname -n

entel2

[xgj@entel2 ~]$ cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

10.45.7.198 entel2

[xgj@entel2 ~]$

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 利用ssh -v的调试功能查找慢的原因
  2. 其实可以用下面的命令调试为什么慢的细节(学习这个思路很重要)。

linux怎么连接sftp(Linux-SFTPSSH免密码登录)(1)

猜您喜欢: