คู่มือ Wolfssh เซิร์ฟเวอร์ SSH ของ Wolfssl
Wolfssh ขึ้นอยู่กับ Wolfcrypt ซึ่งพบว่าเป็นส่วนหนึ่งของ Wolfssl ต่อไปนี้คือการกำหนดค่าที่ง่ายที่สุดของ Wolfssl เพื่อเปิดใช้งาน Wolfssh
$ cd wolfssl
$ ./configure [OPTIONS] --enable-ssh
$ make check
$ sudo make install
ในบางระบบจำเป็นต้องใช้คำสั่ง LDCONFIG ที่เป็นตัวเลือกหลังจากการติดตั้ง
ในการใช้ฟังก์ชั่นการสร้างคีย์ใน Wolfssh จะต้องกำหนดค่าด้วย keygen: --enable-keygen
เมื่อใช้ใบรับรอง X.509 สำหรับการตรวจสอบผู้ใช้ต้องสร้าง WolfsSL ด้วยการเปิดใช้งาน TLS Wolfssh ใช้ระบบตัวจัดการใบรับรองของ Wolfssl สำหรับ X.509 รวมถึงการค้นหา OCSP หากต้องการอนุญาต OCSP ให้เพิ่ม --enable-ocsp ไปยังการกำหนดค่า WolfsSL
หากไม่ต้องการรหัส Wolfssl จำนวนมาก WolfsSL สามารถกำหนดค่าได้ด้วยตัวเลือก crypto เท่านั้น: --enable-cryptonly
ตัวเลือกการสร้างเพิ่มเติมสำหรับ Wolfssl อยู่ในบทที่สอง ของคู่มือ Wolfssh
จากไดเรกทอรีต้นฉบับของ Wolfssh:
$ ./autogen.sh
$ ./configure --with-wolfssl=[/usr/local]
$ make
$ make check
สคริปต์ autogen.sh จะต้องทำงานเป็นครั้งแรกหลังจากโคลนนิ่งที่เก็บ หากคุณเรียกใช้แล้วหรือใช้รหัสจากแหล่งเก็บถาวรคุณควรข้ามไป
สำหรับการสร้างภายใต้ Windows ด้วย Visual Studio โปรดดูไฟล์ "IDE/WINVS/README.MD"
หมายเหตุ: บนอุปกรณ์ที่มีการ จำกัด ทรัพยากรอาจต้องตั้งค่าเป็นค่า DEFAULT_WINDOW_SZ เป็นขนาดที่ต่ำกว่า นอกจากนี้ยังสามารถเพิ่มขึ้นในกรณีการใช้เดสก์ท็อปเพื่อช่วยในการถ่ายโอนไฟล์ขนาดใหญ่ โดยช่องเริ่มต้นถูกตั้งค่าให้รับข้อมูลสูงสุด 128KB ก่อนที่จะส่งข้อความปรับหน้าต่างช่องสัญญาณ ตัวอย่างของการตั้งค่าขนาดหน้าต่างสำหรับแชนเนลใหม่จะมีดังนี้ ./configure CPPFLAGS="-DDEFAULT_WINDOW_SZ=16384"
สำหรับแพลตฟอร์ม Linux 32 บิตคุณสามารถเพิ่มการสนับสนุนสำหรับไฟล์> 2GB โดยเกี่ยวข้องกับ CFLAGS=-D_FILE_OFFSET_BITS=64
examples ไดเรกทอรีมี echoserver ที่ลูกค้าทุกคนควรจะสามารถเชื่อมต่อได้ จากเทอร์มินัลรัน:
$ ./examples/echoserver/echoserver -f
ตัวเลือก -f เปิดใช้งานโหมด echo -only จากเทอร์มินัลอื่นรัน:
$ ssh jill@localhost -p 22222
เมื่อได้รับแจ้งสำหรับรหัสผ่านให้ป้อน "UptheHill" เซิร์ฟเวอร์จะส่งแบนเนอร์กระป๋องไปยังไคลเอนต์:
wolfSSH Example Echo Server
อักขระที่พิมพ์ลงในไคลเอนต์จะถูกสะท้อนไปยังหน้าจอโดยเซิร์ฟเวอร์ หากอักขระนั้นสะท้อนสองครั้งลูกค้าจะเปิดใช้งานเสียงสะท้อนในเครื่อง echoserver ไม่ได้เป็นเทอร์มินัลที่เหมาะสมดังนั้นการแปล CR/LF จะไม่ทำงานตามที่คาดไว้
อักขระควบคุมต่อไปนี้จะก่อให้เกิดการกระทำพิเศษใน echoserver:
หลังจากโคลนนิ่งพื้นที่เก็บข้อมูลให้แน่ใจว่าได้ทำการทดสอบคีย์ส่วนตัวอ่านอย่างเดียวสำหรับผู้ใช้มิฉะนั้น ssh จะบอกให้คุณทำ
$ chmod 0600 ./keys/gretel-key-rsa.pem ./keys/hansel-key-rsa.pem
./keys/gretel-key-ecc.pem ./keys/hansel-key-ecc.pem
การรับรองความถูกต้องกับตัวอย่าง echoserver สามารถทำได้ด้วยรหัสผ่านหรือรหัสสาธารณะ เพื่อใช้รหัสผ่านบรรทัดคำสั่ง:
$ ssh -p 22222 USER@localhost
คู่ ผู้ใช้ และรหัสผ่านอยู่ที่ไหน:
jill:upthehill
jack:fetchapail
หากต้องการใช้การรับรองความถูกต้องของคีย์สาธารณะใช้บรรทัดคำสั่ง:
$ ssh -i ./keys/USER-key-TYPE.pem -p 22222 USER@localhost
ในกรณีที่ ผู้ใช้ สามารถเป็น gretel หรือ hansel และ ประเภท คือ rsa หรือ ecc
โปรดทราบว่า echoserver มีบัญชีปลอมหลายบัญชีในฟังก์ชั่นการเรียกกลับ wsUserAuth() (Jack, Jill, Hansel และ Gretel) เมื่อเปิดใช้งานการสนับสนุนเชลล์บัญชีปลอมเหล่านั้นจะไม่ทำงาน ไม่มีอยู่ในไฟล์ passwd ของระบบ ผู้ใช้จะตรวจสอบความถูกต้อง แต่เซิร์ฟเวอร์จะผิดพลาดเพราะไม่มีอยู่ในระบบ คุณสามารถเพิ่มชื่อผู้ใช้ของคุณเองลงในรหัสผ่านหรือรายการคีย์สาธารณะใน echoserver บัญชีนั้นจะลงชื่อเข้าใช้เชลล์ที่เริ่มต้นโดย echoserver พร้อมสิทธิ์ของผู้ใช้ที่ใช้ echoserver
Wolfssh มาพร้อมกับเครื่องมือตัวอย่างบางอย่างสำหรับการทดสอบและเพื่อแสดงให้เห็นถึงการทำงานร่วมกันกับการใช้งาน SSH อื่น ๆ
echoserver เป็นวิธีการของ Wolfssh เดิมทีอนุญาตให้หนึ่งเดียวเท่านั้นที่จะตรวจสอบบัญชีหนึ่งในบัญชีกระป๋องและจะทำซ้ำอักขระที่พิมพ์ลงไป เมื่อเปิดใช้งานการสนับสนุนเชลล์สามารถวางไข่เชลล์ผู้ใช้ มันจะต้องใช้ชื่อผู้ใช้จริงบนเครื่องและฟังก์ชั่นการโทรกลับผู้ใช้ที่ได้รับการปรับปรุงเพื่อตรวจสอบความถูกต้องของข้อมูลรับรอง echoserver ยังสามารถจัดการการเชื่อมต่อ SCP และ SFTP
เครื่องมือ echoserver ยอมรับตัวเลือกบรรทัดคำสั่งต่อไปนี้:
-1 exit after a single (one) connection
-e expect ECC public key from client
-E use ECC private key
-f echo input
-p <num> port to accept on, default 22222
-N use non-blocking sockets
-d <string> set the home directory for SFTP connections
-j <file> load in a public key to accept from peer
ไคลเอนต์สร้างการเชื่อมต่อกับเซิร์ฟเวอร์ SSH ในโหมดที่ง่ายที่สุดมันจะส่งสตริง "สวัสดี Wolfssh!" ไปยังเซิร์ฟเวอร์พิมพ์การตอบสนองจากนั้นออก ด้วยตัวเลือกเทอร์มินัลหลอกไคลเอนต์จะเป็นลูกค้าจริง
เครื่องมือไคลเอนต์ยอมรับตัวเลือกบรรทัดคำสั่งต่อไปนี้:
-h <host> host to connect to, default 127.0.0.1
-p <num> port to connect on, default 22222
-u <username> username to authenticate as (REQUIRED)
-P <password> password for username, prompted if omitted
-e use sample ecc key for user
-i <filename> filename for the user's private key
-j <filename> filename for the user's public key
-x exit after successful connection without doing
read/write
-N use non-blocking sockets
-t use psuedo terminal
-c <command> executes remote command and pipe stdin/stdout
-a Attempt to use SSH-AGENT
เครื่องมือ PortFWD สร้างการเชื่อมต่อกับเซิร์ฟเวอร์ SSH และตั้งค่าผู้ฟังสำหรับการส่งต่อพอร์ตในท้องถิ่นหรือร้องขอผู้ฟังสำหรับการส่งต่อพอร์ตระยะไกล หลังจากการเชื่อมต่อเครื่องมือจะสิ้นสุดลง
เครื่องมือ PortFWD ยอมรับตัวเลือกบรรทัดคำสั่งต่อไปนี้:
-h <host> host to connect to, default 127.0.0.1
-p <num> port to connect on, default 22222
-u <username> username to authenticate as (REQUIRED)
-P <password> password for username, prompted if omitted
-F <host> host to forward from, default 0.0.0.0
-f <num> host port to forward from (REQUIRED)
-T <host> host to forward to, default to host
-t <num> port to forward to (REQUIRED)
SCPClient, WolfSCP สร้างการเชื่อมต่อกับเซิร์ฟเวอร์ SSH และคัดลอกไฟล์ที่ระบุจากหรือไปยังเครื่องท้องถิ่น
เครื่องมือ SCPClient ยอมรับตัวเลือกบรรทัดคำสั่งต่อไปนี้:
-H <host> host to connect to, default 127.0.0.1
-p <num> port to connect on, default 22222
-u <username> username to authenticate as (REQUIRED)
-P <password> password for username, prompted if omitted
-L <from>:<to> copy from local to server
-S <from>:<to> copy from server to local
SFTPClient, Wolfsftp สร้างการเชื่อมต่อกับเซิร์ฟเวอร์ SSH และอนุญาตให้นำทางด้วยไดเรกทอรีการรับและวางไฟล์การสร้างและการลบไดเรกทอรี ฯลฯ
เครื่องมือ SFTPClient ยอมรับตัวเลือกบรรทัดคำสั่งต่อไปนี้:
-h <host> host to connect to, default 127.0.0.1
-p <num> port to connect on, default 22222
-u <username> username to authenticate as (REQUIRED)
-P <password> password for username, prompted if omitted
-d <path> set the default local path
-N use non blocking sockets
-e use ECC user authentication
-l <filename> local filename
-r <filename> remote filename
-g put local filename as remote filename
-G get remote filename as local filename
Wolfssh มีการสนับสนุนด้านเซิร์ฟเวอร์สำหรับ SCP ซึ่งรวมถึงการสนับสนุนสำหรับการคัดลอกไฟล์ทั้งสองไปยัง 'เซิร์ฟเวอร์และการคัดลอกไฟล์' จาก 'เซิร์ฟเวอร์ ทั้งไฟล์เดียวและสำเนาไดเรกทอรีแบบเรียกซ้ำได้รับการสนับสนุนด้วยการส่งเริ่มต้นและรับการโทรกลับ
ในการรวบรวม Wolfssh ด้วยการสนับสนุน SCP ให้ใช้ตัวเลือกการสร้าง --enable-scp หรือกำหนด WOLFSSH_SCP :
$ ./configure --enable-scp
$ make
สำหรับรายละเอียดการใช้ API เต็มรูปแบบและรายละเอียดการใช้งานโปรดดูคู่มือผู้ใช้ Wolfssh
เซิร์ฟเวอร์ตัวอย่าง Wolfssh ได้รับการตั้งค่าให้ยอมรับคำขอ SCP เดียวและรวบรวมโดยค่าเริ่มต้นเมื่อรวบรวมไลบรารี Wolfssh ในการเริ่มต้นเซิร์ฟเวอร์ตัวอย่างเรียกใช้:
$ ./examples/server/server
คำสั่ง SCP มาตรฐานสามารถใช้กับฝั่งไคลเอ็นต์ ต่อไปนี้เป็นตัวอย่างบางส่วนที่ scp แสดงถึงไคลเอนต์ SSH ที่คุณใช้
ในการคัดลอกไฟล์เดียวไปยังเซิร์ฟเวอร์โดยใช้ตัวอย่างเริ่มต้น "Jill":
$ scp -P 22222 <local_file> [email protected]:<remote_path>
หากต้องการคัดลอกไฟล์เดียวไปยังเซิร์ฟเวอร์ แต่มีการประทับเวลาและในโหมด verbose:
$ scp -v -p -P 22222 <local_file> [email protected]:<remote_path>
เพื่อคัดลอกไดเรกทอรีซ้ำไปยังเซิร์ฟเวอร์:
$ scp -P 22222 -r <local_dir> [email protected]:<remote_dir>
ในการคัดลอกไฟล์เดียวจากเซิร์ฟเวอร์ไปยังไคลเอนต์โลคัล:
$ scp -P 22222 [email protected]:<remote_file> <local_path>
เพื่อคัดลอกไดเรกทอรีจากเซิร์ฟเวอร์ไปยังไคลเอนต์โลคัลซ้ำ:
$ scp -P 22222 -r [email protected]:<remote_dir> <local_path>
Wolfssh ให้การสนับสนุนสำหรับการส่งต่อพอร์ต สิ่งนี้ช่วยให้ผู้ใช้สามารถตั้งค่าอุโมงค์ที่เข้ารหัสไปยังเซิร์ฟเวอร์อื่นที่ไคลเอนต์ SSH ฟังบนซ็อกเก็ตและส่งต่อการเชื่อมต่อบนซ็อกเก็ตนั้นไปยังซ็อกเก็ตอื่นบนเซิร์ฟเวอร์
ในการรวบรวม Wolfssh ด้วยการสนับสนุนการส่งต่อพอร์ตให้ใช้ตัวเลือกการสร้าง --enable-fwd หรือกำหนด WOLFSSH_FWD :
$ ./configure --enable-fwd
$ make
สำหรับรายละเอียดการใช้ API เต็มรูปแบบและรายละเอียดการใช้งานโปรดดูคู่มือผู้ใช้ Wolfssh
เครื่องมือตัวอย่าง PortFWD จะสร้างช่องสไตล์ "Direct-TCPIP" ทิศทางเหล่านี้ถือว่าคุณมีเซิร์ฟเวอร์ของ OpenSsh ที่ทำงานในพื้นหลังโดยเปิดใช้งานการส่งต่อพอร์ต ตัวอย่างนี้ส่งต่อพอร์ตสำหรับไคลเอนต์ WolfsSL ไปยังเซิร์ฟเวอร์เป็นแอปพลิเคชัน สันนิษฐานว่าโปรแกรมทั้งหมดทำงานบนเครื่องเดียวกันในเทอร์มินัลที่แตกต่างกัน
src/wolfssl$ ./examples/server/server
src/wolfssh$ ./examples/portfwd/portfwd -p 22 -u <username>
-f 12345 -t 11111
src/wolfssl$ ./examples/client/client -p 12345
โดยค่าเริ่มต้นเซิร์ฟเวอร์ WolfSSL จะฟังบนพอร์ต 11111 ไคลเอนต์ถูกตั้งค่าให้พยายามเชื่อมต่อกับพอร์ต 12345 พอร์ต FWD เข้าสู่ระบบในฐานะผู้ใช้ "ชื่อผู้ใช้" เปิดผู้ฟังบนพอร์ต 12345 และเชื่อมต่อกับเซิร์ฟเวอร์บนพอร์ต 11111 "สวัสดี Wolfssl!"
แหล่งที่มาสำหรับ PortFWD ให้ตัวอย่างเกี่ยวกับวิธีการตั้งค่าและใช้การสนับสนุนการส่งต่อพอร์ตใน Wolfssh
Echoserver จะจัดการการส่งต่อพอร์ตในท้องถิ่นและระยะไกล ในการเชื่อมต่อกับเครื่องมือ SSH โดยใช้หนึ่งในบรรทัดคำสั่งต่อไปนี้ คุณสามารถเรียกใช้บรรทัดคำสั่ง SSH ได้จากทุกที่:
src/wolfssl$ ./examples/server/server
src/wolfssh$ ./examples/echoserver/echoserver
anywhere 1$ ssh -p 22222 -L 12345:localhost:11111 jill@localhost
anywhere 2$ ssh -p 22222 -R 12345:localhost:11111 jill@localhost
src/wolfssl$ ./examples/client/client -p 12345
สิ่งนี้จะช่วยให้การส่งต่อพอร์ตระหว่างไคลเอนต์ WolfsSL และเซิร์ฟเวอร์เช่นในตัวอย่างก่อนหน้า
Wolfssh ให้การสนับสนุนเซิร์ฟเวอร์และไคลเอ็นต์สำหรับ SFTP เวอร์ชัน 3 สิ่งนี้ช่วยให้ผู้ใช้สามารถตั้งค่าการเชื่อมต่อที่เข้ารหัสสำหรับการจัดการระบบไฟล์
ในการรวบรวม Wolfssh ด้วยการสนับสนุน SFTP ให้ใช้ตัวเลือกการสร้าง --enable-sftp หรือกำหนด WOLFSSH_SFTP :
$ ./configure --enable-sftp
$ make
สำหรับรายละเอียดการใช้ API เต็มรูปแบบและรายละเอียดการใช้งานโปรดดูคู่มือผู้ใช้ Wolfssh
ไคลเอนต์ SFTP ที่สร้างขึ้นนั้นอยู่ในตัวอย่างไดเรกทอรี/ SFTPClient/ และตัวอย่าง echoserver ทำหน้าที่เป็นเซิร์ฟเวอร์ SFTP
src/wolfssh$ ./examples/sftpclient/wolfsftp
รายการคำสั่งที่รองรับทั้งหมดสามารถเห็นได้ด้วยการพิมพ์ "ช่วยเหลือ" หลังจากการเชื่อมต่อ
wolfSSH sftp> help
Commands :
cd <string> change directory
chmod <mode> <path> change mode
get <remote file> <local file> pulls file(s) from server
ls list current directory
mkdir <dir name> creates new directory on server
put <local file> <remote file> push file(s) to server
pwd list current path
quit exit
rename <old> <new> renames remote file
reget <remote file> <local file> resume pulling file
reput <remote file> <local file> resume pushing file
<crtl + c> interrupt get/put cmd
ตัวอย่างของการเชื่อมต่อกับระบบอื่นคือ
src/wolfssh$ ./examples/sftpclient/wolfsftp -p 22 -u user -h 192.168.1.111
Echoserver ตัวอย่างของ Wolfssh สามารถแยกเชลล์สำหรับผู้ใช้ที่พยายามเข้าสู่ระบบได้ปัจจุบันได้รับการทดสอบบน Linux และ MacOS เท่านั้น ไฟล์ echoserver.c จะต้องได้รับการแก้ไขเพื่อให้มีข้อมูลประจำตัวของผู้ใช้ในการโทรกลับการตรวจสอบผู้ใช้หรือการเรียกกลับการตรวจสอบสิทธิ์ของผู้ใช้จะต้องเปลี่ยนเพื่อตรวจสอบรหัสผ่านที่ให้ไว้
ในการรวบรวม Wolfssh ด้วยการสนับสนุนเชลล์ให้ใช้ตัวเลือกการสร้าง --enable-shell หรือกำหนด WOLFSSH_SHELL :
$ ./configure --enable-shell
$ make
ในการทดลองใช้ฟังก์ชันนี้คุณสามารถใช้ตัวอย่าง echoserver และไคลเอนต์ ในเทอร์มินัลทำต่อไปนี้เพื่อเรียกใช้เซิร์ฟเวอร์:
$ ./examples/echoserver/echoserver -P <user>:junk
และในเทอร์มินัลอื่นทำสิ่งต่อไปนี้เพื่อเรียกใช้ตัวอย่างไคลเอนต์:
$ ./examples/client/client -t -u <user> -P junk
โปรดทราบว่า <user> ต้องเป็นชื่อผู้ใช้ของผู้ใช้ปัจจุบันที่เข้าสู่ระบบ
โดยค่าเริ่มต้น echoserver จะพยายามเริ่มเชลล์ ในการใช้พฤติกรรมการทดสอบ Echo ให้ตัวเลือกบรรทัดคำสั่ง echoserver -f
$ ./examples/echoserver/echoserver -f
หากต้องการใช้คุณสมบัติเชลล์กับ Wolfsshd Add --enable-sshd ไปยังคำสั่ง configure ของคุณและใช้คำสั่งต่อไปนี้:
$ sudo ./apps/wolfsshd/wolfsshd -D -h keys/gretel-key-ecc.pem -p 11111
หากมันบ่นเกี่ยวกับไฟล์ sshd_config ที่ไม่ดีเพียงคัดลอกไปยังไฟล์อื่นและลบบรรทัดการละเมิดที่มันบ่นและใช้พารามิเตอร์บรรทัดคำสั่ง -f เพื่อชี้ไปที่ไฟล์ใหม่
จากนั้นคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ wolfsshd ด้วย SSH:
$ ssh <user>@localhost -p 11111
โปรดทราบว่า <user> ต้องเป็นชื่อผู้ใช้ของผู้ใช้ปัจจุบันที่เข้าสู่ระบบ
ตอนนี้ Wolfssh รองรับ Curve25519 สำหรับการแลกเปลี่ยนที่สำคัญ เพื่อเปิดใช้งานการสนับสนุนนี้เพียงแค่รวบรวม Wolfssl ด้วยการสนับสนุน Wolfssh และ Curve25519
$ cd wolfssl
$ ./configure --enable-wolfssh --enable-curve25519
หลังจากสร้างและติดตั้ง WolfsSL คุณสามารถกำหนดค่าได้โดยไม่มีตัวเลือก
$ cd wolfssh
$ ./configure
ไคลเอนต์ Wolfssh และเซิร์ฟเวอร์จะเจรจาโดยอัตโนมัติโดยใช้ Curve25519 โดยอัตโนมัติ
$ ./examples/echoserver/echoserver -f
$ ./examples/client/client -u jill -P upthehill
ตอนนี้ Wolfssh รองรับอัลกอริทึมโพสต์ควอนตัม ML-DSA (หรือที่รู้จักกันในชื่อ Kyber) มันใช้ชุดพารามิเตอร์ KYBER512 และเป็นไฮบริดกับ ECDHE ผ่านเส้นโค้ง P-256 ECC
ในการใช้การแลกเปลี่ยนคีย์นี้คุณต้องสร้างและติดตั้ง WolfsSL ในระบบของคุณ นี่คือตัวอย่างของการกำหนดค่าที่มีประสิทธิภาพ:
$ ./configure --enable-wolfssh --enable-experimental --enable-kyber
หลังจากนั้นเพียงกำหนดค่าและสร้าง Wolfssh ตามปกติ:
$ ./configure
$ make all
ไคลเอนต์ Wolfssh และเซิร์ฟเวอร์จะเจรจาโดยอัตโนมัติโดยใช้ Kyber512 hybridized กับ ECDHE ผ่านเส้นโค้ง P-256 ECC
$ ./examples/echoserver/echoserver -f
$ ./examples/client/client -u jill -P upthehill
ในฝั่งไคลเอ็นต์คุณจะเห็นผลลัพธ์ต่อไปนี้:
เซิร์ฟเวอร์กล่าวว่า: สวัสดี Wolfssh!
หากคุณต้องการเห็นความสามารถในการใช้งานระหว่าง OpenQauntumsafe ของ OpenSsh คุณสามารถสร้างและดำเนินการส้อมในขณะที่ Echoserver กำลังทำงานอยู่ ดาวน์โหลดรีลีสจากที่นี่:
https://github.com/open-quantum-safe/openssh/archive/refs/tags/OQS-OpenSSH-snapshot-2021-08.tar.gz
ต่อไปนี้เพียงพอสำหรับการสร้างและการดำเนินการ:
$ tar xmvf openssh-OQS-OpenSSH-snapshot-2021-08.tar.gz
$ cd openssh-OQS-OpenSSH-snapshot-2021-08/
$ ./configure --with-liboqs-dir=/usr/local
$ make all
$ ./ssh -o"KexAlgorithms=ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org"
-o"PubkeyAcceptedAlgorithms +ssh-rsa"
-o"HostkeyAlgorithms +ssh-rsa"
jill@localhost -p 22222
หมายเหตุ: เมื่อได้รับแจ้งให้ป้อนรหัสผ่านซึ่งเป็น "UptheHill"
คุณสามารถพิมพ์บรรทัดข้อความและเมื่อคุณกด Enter บรรทัดจะถูกสะท้อนกลับ ใช้ CTRL-C เพื่อยุติการเชื่อมต่อ
Wolfssh สามารถรับใบรับรอง X.509 แทนคีย์สาธารณะเพียงแค่เมื่อตรวจสอบสิทธิ์ผู้ใช้
ในการรวบรวม Wolfssh ด้วยการสนับสนุน X.509 ให้ใช้ตัวเลือกการสร้าง --enable-certs หรือกำหนด WOLFSSH_CERTS :
$ ./configure --enable-certs CPPFLAGS=-DWOLFSSH_NO_FPKI
$ make
สำหรับตัวอย่างนี้เรากำลังปิดการตรวจสอบ FPKI เนื่องจากใบรับรองที่รวมอยู่สำหรับ "Fred" ไม่มีส่วนขยาย FPKI ที่จำเป็น หากลบธง wolfssh_no_fpki คุณจะเห็นใบรับรองได้รับการปฏิเสธ
เพื่อให้ใบรับรองรูท CA เพื่อตรวจสอบใบรับรองของผู้ใช้ให้ตัวเลือกบรรทัดคำสั่ง echoserver -a
$ ./examples/echoserver/echoserver -a ./keys/ca-cert-ecc.pem
Echoserver และไคลเอนต์มีผู้ใช้ปลอมชื่อ "Fred" ซึ่งจะใช้ใบรับรองสำหรับการตรวจสอบสิทธิ์
ตัวอย่างการเชื่อมต่อ echoserver / ไคลเอนต์โดยใช้ใบรับรองตัวอย่าง fred-cert.der จะเป็น:
$ ./examples/echoserver/echoserver -a ./keys/ca-cert-ecc.pem -K fred:./keys/fred-cert.der
$ ./examples/client/client -u fred -J ./keys/fred-cert.der -i ./keys/fred-key.der
Wolfssh มาพร้อมกับเซิร์ฟเวอร์ daemon และเครื่องมือเชลล์บรรทัดคำสั่ง ตรวจสอบไดเรกทอรีแอพสำหรับข้อมูลเพิ่มเติม