Windows 8.1에서 Cygwin + SSH 사용과 관련된 일부 문제를 해결하려고 할 때 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를 올바르게 사용하려면 또 다른 세 번째 계정을 추가해야한다는 결론에 도달했습니다.
편집 -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, net user 등)를 사용하여 변경하거나 비활성화해야합니다.