目錄

簡介

問題

解決方案

前提條件

概觀

為MDS上的使用者帳戶設定公鑰/私鑰對

在Linux主機上為使用者帳戶設定公鑰/私鑰對

測試從交換機到Linux主機的SCP。

相關思科支援社群討論

簡介

本文說明如何設定多層資料交換機(MDS)9000，以通過Secure Shell(SSH)協定傳輸資訊，而不為使用者提供密碼。

問題

使用Secure Copy(SCP)等協定通過SSH從MDS交換機傳輸檔案在預設情況下需要密碼。  以互動方式提供SSH密碼可能會不方便，而且某些外部使用者指令碼可能無法以互動方式提供密碼。

解決方案

在MDS交換機上生成公鑰/私鑰對，並將公鑰新增到SSH伺服器上的使用者帳戶authorized_keys檔案中。

前提條件

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

概觀

本文檔概述了在不提供密碼的情況下從MDS 9000向Linux伺服器進行SSH傳輸所需的步驟，這分為四個步驟。

- 為使用者帳戶設定公鑰/私鑰對，該使用者帳戶將被設定為將資料從交換機「複製」。（即將從其執行SSH或SCP命令的帳戶，在本例中為「testuser」）

- 在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為使用者測試使用者生成金鑰對。

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：中，提供密碼短語（無論您想要什麼，只要在某個地方記下即可。）

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公鑰從交換機複製到Linux主機，其使用者名稱「testuser」已存在。請注意，您需要提供使用者名稱testuser的密碼，該密碼可能與交換機上以前建立的密碼相同，也可能不同。

附註：以下說明使用testuser account path為/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，並驗證從交換機到伺服器的副本，而不提供密碼。（請注意，「No password is prompted for...」）

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)#