المقدمة
يصف هذا المستند كيفية إستخدام خيار -o لضمان نجاح SCP من العملاء على أجهزة OpenSSH9.0 إلى أجهزة Cisco IOS® XE.
الحل
يمكن إستخدام الخيار -o على الإصدارات الأحدث من OpenSSH باستخدام أمر SCP لإجبار SCP على إستخدامه لنقل الملف بدلا من SFTP.
scp -O file.ext username@192.0.2.1:file.ext
معلومات أساسية
يمكن إستخدام SCP لنقل الملفات بين عميل SCP وخادم SCP. يستخدم SCP جلسة SSH للمصادقة. بمجرد مصادقة المستخدم يتم فتح قناة أخرى لنقل الملف باستخدام SCP. في OpenSSH9.0 والإصدارات الأعلى، يظل SSH مستخدما للمصادقة، ولكن SFTP يتم إستخدامه لنقل الملفات بدلا من SCP. وهذا يؤدي إلى حدوث مشكلة مع الإصدارات الحالية من Cisco IOS XE لأن SFTP غير مدعوم حاليا لنقل الملفات عبر SSH. تنجح جلسة SSH وهناك سجل نجاح تسجيل الدخول في المخزن المؤقت syslog. ومع ذلك، يتم إغلاق الاتصال بشكل مفاجئ عندما يحاول عميل SCP بدء نقل SFTP.
تكوين SSH و SCP
المتطلبات الأساسية لاستخدام عميل SCP لنقل ملف إلى جهاز Cisco IOS XE.
- يجب تكوين SSH
- يجب تكوين تسجيل الدخول المحلي أو AAA
- مستوى الامتياز 15 مطلوب للمستخدم من أجل SCP
- يجب تمكين خادم SCP
هنا مثال على التكوين
# configure SSH
hostname c8000v
ip domain name cisco.com
crypto key generate rsa
# optional - use ssh version 2
ip ssh version 2
# verify the SSH server is online
show ip ssh
# create a user with privilege level 15
username cisco privilege 15 password 0 cisco
# configure the vty line to use local login and allow ssh
line vty 0 4
login local
transport input ssh
# Enable the SCP server
ip scp server enable
تلميح: يمكن العثور على معلومات إضافية حول تكوين SSH هنا.
ملاحظة: يمكن إستخدام المصادقة والتفويض والمحاسبة (AAA) بدلا من تسجيل الدخول المحلي.
بمجرد تنفيذ التكوين، يمكنك إدخال SSH/SCP إلى الجهاز باستخدام عنوان IP قابل للوصول على الجهاز.
من جهاز Linux، أنت يستطيع استعملت هذا أمر مع العنوان للجهاز:
ملاحظة: بشكل افتراضي، يتم نسخ الملف إلى bootflash.
استكشاف الأخطاء وإصلاحها
في حالة مواجهة المشكلة، تحقق من هذه الأعراض:
1. يعرض إصدار OpenSSH للعميل 9.0 أو أعلى.
jeff@jeff-virtual-machine:~$ ssh -V
OpenSSH_9.0p1 Ubuntu-1ubuntu7, OpenSSL 3.0.5 5 Jul 2022
2. يظهر العميل الاتصال مغلقا بشكل مفاجئ دون أي خطأ أو نقل ملفات.
jeff@jeff-virtual-machine:~$ scp test.txt cisco@192.0.2.1:test.txt
(cisco@192.0.2.1) Password:
scp: Connection closed
3. في الموجه، يظهر syslog اتصال SSH الناجح ولكن لم يتم نقل الملف.
*Mar 26 18:06:57.290: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: 192.0.2.2] [localport: 22] at 18:06:57 UTC Sun Mar 26 2023
4. لا تظهر تصحيح أخطاء SCP على الموجه أي معلومات.
c8000v#debug ip scp
Incoming SCP debugging is on
5. SCP مع خيار -v يظهر سجلات تصحيح الأخطاء التي ترسل النظام الفرعي SFTP.
scp -v test.txt cisco@192.0.2.1:test.txt
Executing: program /usr/bin/ssh host 192.0.2.1, user cisco, command sftp
OpenSSH_9.0p1 Ubuntu-1ubuntu7, OpenSSL 3.0.5 5 Jul 2022
<snip>
debug1: Entering interactive session.
debug1: pledge: filesystem
debug1: Sending environment.
debug1: channel 0: setting env LANG = "en_US.UTF-8"
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
scp: Connection closed
6. تبحث تصحيحات SSH على الموجه show ssh عن نظام فرعي SFTP ثم تغلق الاتصال.
c8000v#debug ip ssh detail
ssh detail messages debugging is on
*Mar 24 14:25:05.074: SSH: MD5 compliance exception Registered
*Mar 24 14:25:05.074: SSH1: starting SSH control process
*Mar 24 14:25:05.074: SSH1: sent protocol version id SSH-2.0-Cisco-1.25
*Mar 24 14:25:05.075: SSH1: protocol version id is - SSH-2.0-OpenSSH_9.0p1 Ubuntu-1ubuntu7 <snip>
*Mar 24 14:25:07.370: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: 10.10.10.10] [localport: 22] at 14:25:07 UTC Fri Mar 24 2023
*Mar 24 14:25:07.379: SSH2 1: channel open request *Mar 24 14:25:07.389: SSH2 1: env request
*Mar 24 14:25:07.389: SSH2 1: subsystem request *Mar 24 14:25:07.389: SSH2 1: subsystem message received
*Mar 24 14:25:07.389: SSH2 1: searching for subsystem sftp for vty
*Mar 24 14:25:07.490: SSH1: Session terminated normally
7. أخيرا، ينجح بروتوكول SCP مع خيار -o.
jeff@jeff-virtual-machine:~$ scp -O test.txt cisco@192.0.2.1:test.txt
(cisco@192.0.2.1) Password:
test.txt 100% 28 2.7KB/s 00:00