目录

简介

问题

解决方案

前提条件

概述

在MDS上为用户帐户设置公钥/私钥对

在Linux主机上为用户帐户设置公钥/私钥对

测试从交换机到Linux主机的SCP。

相关的思科支持社区讨论

简介

本文档介绍如何设置多层数据交换机(MDS)9000，以通过安全外壳(SSH)协议传输信息，而不为用户提供密码。

问题

默认情况下，使用安全复制(SCP)等协议通过SSH从MDS交换机传输文件需要密码。  交互式提供SSH密码可能不方便，一些外部用户脚本可能无法交互提供密码。

解决方案

在MDS交换机上生成公钥/私钥对，并将公钥添加到SSH服务器上的用户帐户authorized_keys文件。

前提条件

在本例中，配置了SSH服务器和客户端的通用Linux服务器（RedHat、Ubuntu等）。

概述

本文档概述了从MDS 9000向Linux服务器进行SSH传输而不提供密码所需的步骤，这将在四个步骤中介绍。

- 为用户帐户设置公钥/私钥对，该对将设置为从交换机“复制”数据。（例如，在本例中为“testuser”，将从中执行SSH或SCP命令的帐户）

- 在Linux主机上为用户帐户设置公钥/私钥对，以便用户“testuser”应将信息复制或移出交换机，而无需在交换机提示符下提供密码。

- 测试从交换机到Linux主机的SCP。

在MDS上为用户帐户设置公钥/私钥对

从MDS 9000交换机，创建用户名“testuser”，其密码和角色为network-admin。确保创建用户和网络管理员角色用户，以便生成密钥对。

sw12# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

sw12(config)# username testuser password cisco_123 role network-admin

sw12(config)# cop run start

[########################################] 100%

sw12(config)#

使用上一步骤中创建的用户名从Linux主机SSH到交换机：

sj-lnx[85]:~$ ssh testuser@192.168.12.112

User Access Verification

Password:

Cisco Nexus Operating System (NX-OS) Software

TAC support: http://www.cisco.com/tac

Copyright (c) 2002-2010, Cisco Systems, Inc. All rights reserved.

The copyrights to certain works contained in this software are

owned by other third parties and used and distributed under

license. Certain components of this software are licensed under

the GNU General Public License (GPL) version 2.0 or the GNU

Lesser General Public License (LGPL) Version 2.1. A copy of each

such license is available at

http://www.opensource.org/licenses/gpl-2.0.php and

http://www.opensource.org/licenses/lgpl-2.1.php

sw12#

使用长度为1024位的rsa为用户testuser生成密钥对。

sw12# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

sw12(config)# username testuser keypair generate rsa 1024

generating rsa key(1024 bits)......

generated rsa key

sw12(config)# show username testuser keypair

**************************************

rsa Keys generated:Tue Apr 16 15:05:18 2013

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAs3RocZLGp0y0sTdKXydmJDQVG//wAWXys7xk2DrcgQco

fY8+bRUBAUfMasoOVUvrCvV0qOdC8woV4KgF0nQgfX/mhuKqjWHW6IEBMmPY8v+OjXn+Avj3CH8K7h1z

tmbtFPo04rR7ivJx/boPQopk7mlpeocEzpVihOCIRiVJaj0=

bitcount:1024

fingerprint:

8b:d8:7b:2f:bf:14:ee:bc:a4:d3:54:0a:9a:4d:db:60

**************************************

could not retrieve dsa key information

**************************************

sw12(config)# cop run start

[########################################] 100%

sw12(config)#

将密钥对导出到bootflash:，提供Passphrase（无论您想要什么，只需在某处记下它。）

sw12(config)# username testuser keypair export bootflash:testuser_rsa rsa

Enter Passphrase:

sw12(config)# dir bootflash:

16384    Apr 15 15:21:31 2012  lost+found/

18693120    Apr 15 15:22:55 2012  m9100-s3ek9-kickstart-mz.5.0.1a.bin

73579433    Apr 15 15:23:53 2012  m9100-s3ek9-mz.5.0.1a.bin

5778    Apr 15 15:24:48 2013  mts.log

951    Apr 16 15:07:01 2013  testuser_rsa

219    Apr 16 15:07:02 2013  testuser_rsa.pub

Usage for bootflash://sup-local

143622144 bytes used

533487616 bytes free

677109760 bytes total

sw12(config)#

在Linux主机上为用户帐户设置公钥/私钥对

将用户testuser的rsa公钥从交换机复制到用户名为“testuser”的Linux主机。请注意，您需要提供用户名testuser的密码，该密码可能与之前在交换机上创建的密码相同，也可能不相同。

注意：这些说明使用一个示例，其中testuser帐户路径为/users/testuser。根据您的Linux版本，此路径可能不同。

sw12(config)# copy bootflash:testuser_rsa.pub scp://testuser@192.168.12.100/users/testuser/.ssh

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

RSA key fingerprint is 91:42:28:58:f9:51:31:4d:ba:ac:95:50:51:09:96:74.

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

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

testuser@192.168.12.100's password:

testuser_rsa.pub                                 100%  219     0.2KB/s   00:00

sw12(config)# dir bootflash:

16384    Apr 15 15:21:31 2012  lost+found/

18693120    Apr 15 15:22:55 2012  m9100-s3ek9-kickstart-mz.5.0.1a.bin

73579433    Apr 15 15:23:53 2012  m9100-s3ek9-mz.5.0.1a.bin

5778    Apr 15 15:24:48 2013  mts.log

951    Apr 16 15:07:01 2013  testuser_rsa

219    Apr 16 15:07:02 2013  testuser_rsa.pub

Usage for bootflash://sup-local

143622144 bytes used

533487616 bytes free

677109760 bytes total

sw12(config)#

在Linux服务器上，您需要将testuser_rsa.pub文件的内容添加到authorized_keys文件（或authorized_keys2文件，具体取决于您的SSH版本）：

sj-lnx[91]:~/$ cd .ssh

sj-lnx[92]:~/.ssh$ chmod 644 authorized_keys2

sj-lnx[93]:~/.ssh$ ls -lrt

lrwxrwxrwx 1 testuser  eng    16 Apr  7  2005 authorized_keys -> authorized_keys2

-rw-r--r-- 1 testuser eng  1327 Apr 16 15:04 authorized_keys2

-rw-r--r-- 1 testuser eng   219 Apr 16 15:13 testuser_rsa.pub

sj-lnx[94]:~/.ssh$ cat testuser_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAs3RocZLGp0y0sTdKXydmJDQVG//wAWXys7xk2DrcgQcofY8+bRUBAUfMasoOVUvrCvV0qOdC8woV4KgF0nQgfX/mhuKqjWHW6IEBMmPY8v+OjXn+Avj3CH8K7h1ztmbtFPo04rR7ivJx/boPQopk7mlpeocEzpVihOCIRiVJaj0= root@sw12

sj-lnx[95]:~/.ssh$ cat testuser_ras.pub >> authorized_keys2

sj-lnx[96]:~/.ssh$ cat authorized_keys2

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1XMy4dbF5Vy4+wvYWS7s/luE/HoyX+HD6Kwrre5lEP7ZRKm1S3blWxZeYIYuhL7kU714ZM0r4NzEcV2Jdt6/7Hai5FlnKqA04AOAYH6jiPcw0fjdLB98q96B4G5XvaoV7VP2HTNn7Uw5DpQ3+ODwjCgQE7PvBOS2yGKt9gYbLd8= root@sw12

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAs3RocZLGp0y0sTdKXydmJDQVG//wAWXys7xk2DrcgQcofY8+bRUBAUfMasoOVUvrCvV0qOdC8woV4KgF0nQgfX/mhuKqjWHW6IEBMmPY8v+OjXn+Avj3CH8K7h1ztmbtFPo04rR7ivJx/boPQopk7mlpeocEzpVihOCIRiVJaj0= root@sw12

sj-lnx[97]:~/.ssh$

测试从交换机到Linux主机的SCP。

测试从交换机到Linux服务器的SCP，并验证从交换机到服务器的副本，而不提供密码。（请注意，“未提示输入密码……”）

sw12(config)# dir bootflash:

16384    Apr 15 15:21:31 2012  lost+found/

18693120    Apr 15 15:22:55 2012  m9100-s3ek9-kickstart-mz.5.0.1a.bin

73579433    Apr 15 15:23:53 2012  m9100-s3ek9-mz.5.0.1a.bin

5778    Apr 15 15:24:48 2013  mts.log

951    Apr 16 15:07:01 2013  testuser_rsa

219    Apr 16 15:07:02 2013  testuser_rsa.pub

Usage for bootflash://sup-local

143622144 bytes used

533487616 bytes free

677109760 bytes total

sw12(config)# copy bootflash:mts.log scp://testuser@192.168.12.100/users/testuser

mts.log                                       100% 5778     5.6KB/s   00:00

sw12(config)#