ในการพยายามแก้ไขปัญหาบางอย่างเกี่ยวกับการใช้ Cygwin + SSH บน Windows 8.1 ฉันต้องการทราบว่าทำไมssh-host-config
สคริปต์สร้างบัญชีใหม่สองบัญชีที่กำหนดค่า OpenSSH ตั้งแต่ต้น? (จำเป็นหรือไม่)
บัญชีสองบัญชีคือ: cyg_server
และsshd
เมื่อใช้การเลือกเริ่มต้น + การเพิ่มระดับสิทธิ์และการติดตั้งบริการ ฉันเข้าใจว่าตัวแรกใช้สำหรับการเริ่มบริการ Cygwin SSHd เท่านั้น แต่ฉันไม่เข้าใจฟังก์ชันของตัวที่สอง ฉันค้นหาที่เก็บถาวร Cygwin และคำอธิบายของนักพัฒนาเพียงคนเดียวคือ "เพราะได้รับการออกแบบให้ทำเช่นนั้น" แนะนำให้ใช้กับสิ่งเหล่านี้เพื่อการเข้าสู่ระบบจริง
นี่คือการติดตั้งของฉัน:
-----------------------------------------------------------
ssh-keygen: generating new host keys: RSA1 RSA DSA ECDSA ED25519
*** Info: Creating default /etc/ssh_config file
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/README.privsep.
*** Query: Should privilege separation be used? (yes/no) yes
*** Info: Note that creating a new user requires that the current account have
*** Info: Administrator privileges. Should this script attempt to create a
*** Query: new local account 'sshd'? (yes/no) yes
*** Info: Updating /etc/sshd_config file
*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: []
*** Info: On Windows Server 2003, Windows Vista, and above, the
*** Info: SYSTEM account cannot setuid to other users -- a capability
*** Info: sshd requires. You need to have or to create a privileged
*** Info: account. This script will help you do so.
*** Info: You appear to be running Windows XP 64bit, Windows 2003 Server,
*** Info: or later. On these systems, it's not possible to use the LocalSystem
*** Info: account for services that can change the user id without an
*** Info: explicit password (such as passwordless logins [e.g. public key
*** Info: authentication] via sshd).
*** Info: If you want to enable that functionality, it's required to create
*** Info: a new account with special privileges (unless a similar account
*** Info: already exists). This account is then used to run these special
*** Info: servers.
*** Info: Note that creating a new user requires that the current account
*** Info: have Administrator privileges itself.
*** Info: No privileged account could be found.
*** Info: This script plans to use 'cyg_server'.
*** Info: 'cyg_server' will only be used by registered services.
*** Query: Do you want to use a different name? (yes/no) no
*** Query: Create new privileged user account 'cyg_server'? (yes/no) yes
*** Info: Please enter a password for new user cyg_server. Please be sure
*** Info: that this password matches the password rules given on your system.
*** Info: Entering no password will exit the configuration.
*** Query: Please enter the password:
*** Query: Reenter:
*** Info: User 'cyg_server' has been created with password 'XXXXXXXXXX'.
*** Info: If you change the password, please remember also to change the
*** Info: password for the installed services which use (or will soon use)
*** Info: the 'cyg_server' account.
*** Info: Also keep in mind that the user 'cyg_server' needs read permissions
*** Info: on all users' relevant files for the services running as 'cyg_server'.
*** Info: In particular, for the sshd server all users' .ssh/authorized_keys
*** Info: files must have appropriate permissions to allow public key
*** Info: authentication. (Re-)running ssh-user-config for each user will set
*** Info: these permissions correctly. [Similar restrictions apply, for
*** Info: instance, for .rhosts files if the rshd server is running, etc].
*** Info: The sshd service has been installed under the 'cyg_server'
*** Info: account. To start the service now, call `net start sshd' or
*** Info: `cygrunsrv -S sshd'. Otherwise, it will start automatically
*** Info: after the next reboot.
*** Info: Host configuration finished. Have fun!
-----------------------------------------------------------
นอกจากนี้ 'cyg_server' เป็นบัญชีที่มองเห็นได้ซึ่งสามารถใช้สำหรับการเข้าสู่ระบบ Windows แต่ดูเหมือน 'sshd' ดังนั้นฉันจึงเหลือข้อสรุปฉันจะต้องเพิ่มอีกบัญชีที่สามเพื่อให้สามารถใช้ SSH ได้อย่างถูกต้องซึ่งดูเหมือนจะค่อนข้างบ้า!
EDIT-1 : ไม่เพียงแค่นั้นบัญชีsshdยังมีวันหมดอายุรหัสผ่านตั้ง 40 วันจากการติดตั้งและมีรหัสผ่าน (ตามWMIC ) (ฉันไม่เคยถูกขอให้ป้อนรหัสผ่านสำหรับบัญชีนี้ในระหว่างการตั้งค่า ssh)
ทำwmic useraccount get AccountType,...,Status
:
AccountType Disabled Lockout Name PasswordChangeable PasswordExpires PasswordRequired Status
512 FALSE FALSE cyg_server TRUE FALSE TRUE OK
512 TRUE FALSE sshd TRUE TRUE TRUE Degraded
และnet user sshd
:
User name sshd
Full Name sshd privsep
Comment
User's comment
Country/region code 000 (System Default)
Account active No
Account expires Never
Password last set 2014-03-01 23:20:19
Password expires 2014-04-12 23:20:19
Password changeable 2014-03-01 23:20:19
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory C:\cygwin64\var\empty
Last logon Never
Logon hours allowed All
Local Group Memberships *Users
Global Group memberships *None
The command completed successfully.
ดังนั้นนี่จะเปิดคำถามเพิ่มเติมอีกสองข้อเกี่ยวกับสิ่งนี้:
- รหัสผ่านคืออะไรและทำไมผู้ใช้ถึงไม่ได้รับการแจ้งเกี่ยวกับเรื่องนี้?
- ทำไมรหัสผ่านนี้ถึงมีวันหมดอายุ
แก้ไข - 2 : ไม่สามารถผ่านรายชื่อนักพัฒนา Cygwin ได้ฉันต้องทำการตรวจสอบเพิ่มเติมด้วยตัวเอง จนถึงตอนนี้ฉันยังไม่มีคำตอบสำหรับคำถามที่ 1 แต่มีปัญหาอื่น ๆ อีกมากมายเกี่ยวกับสคริปต์ ssh-host-config ที่ใช้สำหรับการตั้งค่า บรรทัดล่างคือคุณสามารถลบทั้งบัญชี sshd & cyg_server และตั้งค่าบัญชีผู้ดูแลระบบที่เหมาะสมหนึ่งบัญชีโดยใช้การตั้งค่าของพวกเขาเป็นข้อมูลอ้างอิง
คำถามที่ 2 : Windows 8.1 มีการตั้งรหัสผ่านเริ่มต้นที่หมดอายุเป็น 42 วัน สิ่งนี้จะต้องมีการเปลี่ยนแปลงหรือปิดการใช้งานโดยใช้เครื่องมือ Windows ปกติ (UI, WMIC, ผู้ใช้เน็ต ฯลฯ )