Tôi đã cài đặt OpenSSH trên hai máy chủ Windows của mình bằng Chocolatey. Tôi sử dụng nó để tự động triển khai từ các hộp Linux của mình. Tôi cũng muốn có thể SSH vào PowerShell trên các máy này thay vì dấu nhắc lệnh. Nó hoạt động tốt cho một trong số họ, nhưng từ chối làm việc cho người kia. Chúng có cùng cấu hình chính xác như tôi có thể nói.
C:\ProgramData\ssh\sshd_config giống nhau cho cả hai máy chủ:
# Đây là tệp cấu hình toàn hệ thống của máy chủ sshd. Nhìn thấy
# sshd_config(5) để biết thêm thông tin.
# Chiến lược được sử dụng cho các tùy chọn trong sshd_config mặc định được gửi cùng với
# OpenSSH là chỉ định các tùy chọn với giá trị mặc định của chúng ở đâu
# có thể, nhưng hãy để họ nhận xét. Các tùy chọn không ghi chú sẽ ghi đè lên
# giá trị mặc định.
#Cảng 22
#AddressFamily bất kỳ
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
# Mật mã và khóa
#RekeyLimit mặc định không có
# Đăng nhập
#SyslogFacility AUTH
#LogLevel THÔNG TIN
# Xác thực:
#Đăng nhậpGraceTime 2 phút
#PermitRootLogin cấm mật khẩu
#StrictModes có
#MaxAuthTries 6
#MaxSessions 10
PubkeyAuthentication có
# Mặc định là kiểm tra cả .ssh/authorized_keys và .ssh/authorized_keys2
# nhưng điều này bị ghi đè nên quá trình cài đặt sẽ chỉ kiểm tra .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsKhông có tệp nào
# Để điều này hoạt động, bạn cũng sẽ cần các khóa máy chủ trong %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication không
# Thay đổi thành có nếu bạn không tin tưởng ~/.ssh/known_hosts cho
# Xác thực dựa trên máy chủ
#IgnoreUserKnownHosts không
# Không đọc các tệp ~/.rhosts và ~/.shosts của người dùng
#IgnoreRhosts có
# Để tắt mật khẩu văn bản rõ ràng được tạo đường hầm, hãy thay đổi thành không ở đây!
Mật khẩu Xác thực không
#PermitEmptyMật khẩu không
# tùy chọn GSSAPI
#GSSAPIXác thực không
#AllowAgentChuyển tiếp có
#AllowTcpChuyển tiếp có
#GatewayPorts không
#PermitTTY có
#PrintMotd vâng
#PrintLastLog có
#TCPKeepAlive có
#Sử dụngĐăng nhập không
#PermitUserEnvironment không
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS không
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel không
#ChrootDirectory không có
#VersionAddendum không có
# không có đường dẫn biểu ngữ mặc định
#Biểu ngữ không có
# ghi đè mặc định không có hệ thống con
Hệ thống con sftp sftp-server.exe
# Ví dụ về cài đặt ghi đè trên cơ sở mỗi người dùng
#Match người dùng anoncvs
# AllowTcpForwarding không
# Giấy phépTTY không
# Máy chủ cvs ForceCommand
Quản trị viên #Match Group
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
C:\Users\Nacht.ssh\authorized_keys giống nhau:
command="C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+jD0xfG/ZG1syjec5VWou4Sc/eDmtqPAZTy7OUbUSLxd0dCcbo5tQmzxeteSMEDMRR51Uqf9H+LuBVdf+l0CRQLMnsp1sZp5abOJoQJPvEcBHuAJZYknXc3TxvmULsSBRNKJu9yu9MIHde2PB9yrTONxwYTCqDjRibZyAUPJbv6S8SDMrf9/4E3eeOo4efOFM5Vp+bGs5BcHqSK5lDnWhoB3acqjo0zOUZk+mVTxjoCUCMBvh3I6V7tqK8+OMmM8XH0ELsCiM47wFcGS3/usj4K0OaMiylBmai0A4HM3vuXZzHoJvpB4b+N+O5lki8kwFPf8lwpgjukR/NC8wxcwR nacht@savage
Tôi đang thử nghiệm từ một hộp linux. Khi tôi ssh đến máy chủ đầu tiên, tôi nhận được lời nhắc PowerShell như mong đợi. Khi tôi ssh đến máy chủ thứ hai, tôi nhận được dấu nhắc cmd.Tôi không thể tìm thấy bất kỳ lỗi nào ở bất kỳ đâu, Nhật ký sự kiện hiển thị cùng một nội dung cho cả hai máy chủ trong danh mục "OpenSSH/Operational", nhưng máy chủ thứ hai thiếu tất cả nhật ký trong danh mục "Windows PowerShell" khi khởi động PowerShell.
Trên các máy chủ Windows, đây là những gì tôi đã chạy để cài đặt OpenSSH:
choco cài đặt openssh -y
. "C:\Tệp chương trình\OpenSSH-Win64\install-sshd.ps1"
bắt đầu dịch vụ sshd
New-NetFirewallRule -DisplayName "SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
chocolatey báo cáo rằng cùng một phiên bản openssh được cài đặt trên cả hai: openssh 8.0.0.1 [Đã phê duyệt]
Điều gì có thể khác nhau giữa hai máy chủ này có thể khiến tùy chọn lệnh hoạt động cho máy chủ này chứ không phải máy chủ kia?