SSH 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
Secure Shell (SSH)
+
==SSH using Linux or Mac OS==
 +
https://www.raspberrypi.org/documentation/remote-access/ssh/unix.md
  
== OpenSSH ==
+
==자동로그인==
https://www.openssh.com/
 
  
=== 설치 ===
+
===키 생성===
 
 
==== 리눅스 ====
 
데비안 계열에서 클라이언트 설치
 
 
 
ssh-keygen명령을 포함한다.
 
<syntaxhighlight lang="bash">
 
$ apt update
 
$ apt install openssh-client
 
</syntaxhighlight>
 
 
 
==== 윈도우 ====
 
MS문서: [https://docs.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_install_firstuse OpenSSH 설치]
 
 
 
<code>C:\WINDOWS\System32\OpenSSH\ssh.exe</code>에 설치된다.(8.6.0.1)
 
  
참고로 gitbash에서는(git version 2.44.0.windows.1) <code>C:\Program Files\Git\usr\bin</code>에 설치되며 ssh config파일의 위치도 다른 것으로 보인다.
+
====리눅스====
 
 
[[PowerShell|파워셀]]을 관리자 권한으로 실행해야 서비스를 제어할 수 있다.
 
<syntaxhighlight lang="powershell">
 
# Start the sshd service
 
Start-Service sshd
 
</syntaxhighlight>서비스 관리자에서 자동실행을 설정할 수 있다. (서비스명: OpenSSH SSH Server)
 
 
 
[https://docs.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_server_configuration OpenSSH 서버 구성]
 
 
 
Windows에서 sshd는 기본적으로 %programdata%\ssh\sshd_config에서 구성 데이터를 읽습니다.
 
 
 
로그를 남기려면 설정파일의 다음부분을 수정한다.<syntaxhighlight lang="apacheconf">
 
# Logging
 
#SyslogFacility AUTH
 
SyslogFacility LOCAL0
 
#LogLevel INFO
 
LogLevel DEBUG3
 
</syntaxhighlight>설정파일의 Match Group administrators에 따라서 __PROGRAMDATA__/ssh/administrators_authorized_keys 파일에서 공개키를 먼저 찾게 되는데(윈도우의 기본설정인 것으로 보인다.) 이 부분을 주석처리해야 리눅스와 동일하게 사용자 폴더의 .ssh/authorized_keys파일에서 공개키를 찾게 된다.<syntaxhighlight lang="apacheconf">
 
#Match Group administrators
 
#      AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
 
</syntaxhighlight>
 
 
 
=== SYNOPSIS ===
 
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
 
 
 
[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
 
 
 
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
 
 
 
[-i identity_file] [-J [user@]host[:port]] [-L address]
 
 
 
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
 
 
 
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
 
 
 
[-w local_tun[:remote_tun]] destination [command]
 
$ ssh -i .ssh/aws_arm64.pem admin@아이피
 
 
 
==ssh-keygen==
 
authentication key generation, management and conversion
 
 
 
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-N new_passphrase] [-C comment] [-f output_keyfile]
 
 
 
===키 생성===
 
 
  $ ssh-keygen -t rsa
 
  $ ssh-keygen -t rsa
  
PS > ssh-keygen -t rsa
 
 
나머지는 엔터치면 기본값으로 .ssh 폴더에 생성된다.
 
나머지는 엔터치면 기본값으로 .ssh 폴더에 생성된다.
  
입력없이 생성하려면
+
====윈도우====
$ ssh-keygen -q -t rsa -N "" -f /[사용자홈]/.ssh/id_rsa
+
 
 +
=====[[openssl]]=====
  
 
=====puttygen=====
 
=====puttygen=====
[[openssl]] 등을 이용해서 포맷을 변경해야 할 수 있다.
+
puttygen에서 conversions-> import key
 
 
외부에서 생성한 개인키를 사용려면(일반적으로 표준이 아니다.)puttygen에서 conversions-> import key
 
  
 
에디터로 열어서 -----BEGIN RSA PRIVATE KEY----- 윗부분은 삭제해야 제대로 로딩된다.
 
에디터로 열어서 -----BEGIN RSA PRIVATE KEY----- 윗부분은 삭제해야 제대로 로딩된다.
84번째 줄: 24번째 줄:
 
저장한 공개키로 ssh에 로그인하려면 base64 인코딩된 부분만 엔터를 지우고 '''.ssh/authorized_keys''' 에 추가한다.
 
저장한 공개키로 ssh에 로그인하려면 base64 인코딩된 부분만 엔터를 지우고 '''.ssh/authorized_keys''' 에 추가한다.
  
The Secure Shell (SSH) Public Key File Format: https://datatracker.ietf.org/doc/html/rfc4716
+
=설정파일=
 
+
/etc/ssh/sshd_config<syntaxhighlight lang="apacheconf">
=== 키 관리 ===
 
-e      This option will read a private or public OpenSSH key file and print to stdout the key in one of the
 
 
 
formats specified by the -m option.  The default export format is “RFC4716”.  This option allows ex‐
 
 
 
porting OpenSSH keys for use by other programs, including several commercial SSH implementations.
 
$ ssh-keygen -e [-m key_format] [-f input_keyfile]
 
 
 
==ssh config==
 
ssh는 다음 순서로 설정 정보를 얻는다.
 
 
 
# command-line options
 
# user's configuration file (~/.ssh/config)
 
# system-wide configuration file (/etc/ssh/ssh_config, 윈도우 OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3 경우에 C:/ProgramData/ssh/ssh_config)
 
<syntaxhighlight lang="text">
 
Host github.com
 
    PreferredAuthentications publickey
 
    IdentityFile ~/.ssh/id_rsa
 
    UserKnownHostsFile ~/.ssh/known_hosts
 
    Port 60
 
</syntaxhighlight>
 
 
 
=== PreferredAuthentications ===
 
선호하는 인증방법을 지정한다.
 
 
 
gssapi-with-mic,hostbased,publickey,keyboard-interactive,password
 
 
 
=== IdentityFile ===
 
기본값은 ''~/.ssh/id_rsa'', ''~/.ssh/id_ecdsa'', ''~/.ssh/id_ecdsa_sk'', ''~/.ssh/id_ed25519'', ''~/.ssh/id_ed25519_sk'' and ''~/.ssh/id_dsa''. 이다.
 
 
 
윈도우에서는 버전에 따라서 전체경로를 <code>c:/User/[user name]/.ssh/id_rsa</code> 등으로 지정해야 하는 경우가 있다.
 
 
 
=== Port ===
 
기본포트를 변경한 경우에 다음 명령으로 접속할 수 있다.
 
$ ssh -v 사용자명@서버주소
 
 
 
== sshd config ==
 
OpenSSH daemon configuration file
 
 
 
''/etc/ssh/sshd_config''<syntaxhighlight lang="apacheconf">
 
 
# 패스워드 인증허용여부
 
# 패스워드 인증허용여부
 
PasswordAuthentication no
 
PasswordAuthentication no
138번째 줄: 38번째 줄:
  
 
$ ssh-keygen -R [호스트명]
 
$ ssh-keygen -R [호스트명]
[[분류:프로토콜]]
+
[[분류:소프트웨어]]
[[분류:네트워크]]
+
[[분류:리눅스]]
 +
[[분류:윈도우]]

wwiki에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 Wwiki:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)