소개
SSH는 리눅스 서버에 원격으로 연결하는 주요 수단으로 사용되는 안전한 프로토콜입니다. 이는 원격 셸을 생성하여 텍스트 기반 인터페이스를 제공합니다. 연결한 후에는 로컬 터미널에서 입력한 모든 명령이 원격 서버로 전송되어 해당 서버에서 실행됩니다.
이 치트 시트 스타일 가이드에서는 몇 가지 일반적인 SSH 연결 방법을 다룰 것입니다. 이는 서버에 연결하거나 구성하는 방법을 알아야 할 때 빠른 참조로 사용할 수 있습니다.
DigitalOcean App Platform을 사용하여 GitHub에서 프론트엔드 애플리케이션을 배포하세요. DigitalOcean이 앱의 확장에 집중하도록 해보세요.
이 안내서 사용 방법
- SSH에 익숙하지 않거나 시작한 지 얼마 되지 않았다면 먼저 SSH 개요 섹션을 읽으십시오.
- 원하는 목표를 달성하는 데 해당하는 후속 섹션을 사용하십시오. 대부분의 섹션은 다른 섹션에 의존하지 않으므로 다음 예제를 독립적으로 사용할 수 있습니다.
- 왼쪽 페이지의 콘텐츠 메뉴(폭이 넓은 경우)나 브라우저의 찾기 기능을 사용하여 필요한 섹션을 찾으십시오.
- 명령 줄 예제를 복사하여 붙여 넣으십시오.
강조된
값은 자신의 값으로 대체하십시오.
SSH 개요
원격 Linux 서버에 연결하는 가장 일반적인 방법은 SSH를 통한 연결입니다. SSH는 안전한 셸(Shell)로, 원격으로 명령을 실행하고 변경하며 서비스를 구성할 수 있는 안전하고 안전한 방법을 제공합니다. SSH로 연결하면 원격 서버에 있는 계정을 사용하여 로그인합니다.
SSH 작동 방식
SSH를 통해 연결하면 셸 세션으로 들어가게 되는데, 이는 텍스트 기반 인터페이스로서 서버와 상호 작용할 수 있는 곳입니다. SSH 세션 동안 로컬 터미널에 입력하는 모든 명령은 암호화된 SSH 터널을 통해 서버에서 실행됩니다.
SSH 연결은 클라이언트-서버 모델을 사용하여 구현됩니다. 이는 SSH 연결이 설정되려면 원격 컴퓨터에서 SSH 데몬이라고 불리는 소프트웨어가 실행 중이어야 함을 의미합니다. 이 소프트웨어는 특정 네트워크 포트에서 연결을 수신하고, 연결 요청을 인증하며, 사용자가 올바른 자격 증명을 제공하면 해당 환경을 생성합니다.
사용자의 컴퓨터에는 SSH 클라이언트가 있어야 합니다. 이는 SSH 프로토콜을 사용하여 통신하는 방법을 알고 있으며, 연결할 원격 호스트에 대한 정보, 사용할 사용자 이름 및 인증에 전달할 자격 증명을 제공할 수 있는 소프트웨어입니다. 클라이언트는 설정하려는 연결 유형에 대한 특정 세부 정보도 지정할 수 있습니다.
SSH에서 사용자 인증하는 방법
클라이언트는 일반적으로 패스워드 (보안이 취약하며 권장되지 않음) 또는 매우 안전한 SSH 키를 사용하여 인증합니다.
패스워드 로그인은 암호화되어 있으며, 새로운 사용자에게 이해하기 쉽습니다. 그러나 자동화된 봇 및 악의적인 사용자들은 종종 패스워드 기반 로그인을 허용하는 계정에 반복적으로 인증을 시도할 수 있으며, 이로 인해 보안 침해가 발생할 수 있습니다. 이러한 이유로 대부분의 구성에 대해 항상 SSH 키 기반 인증을 설정하는 것이 좋습니다.
SSH 키는 인증에 사용할 수있는 암호 키의 일치 세트입니다. 각 세트에는 공개 키와 개인 키가 포함되어 있습니다. 공개 키는 걱정없이 자유롭게 공유할 수 있지만 개인 키는 주의 깊게 지켜야하며 아무에게도 노출되어서는 안됩니다.
SSH 키를 사용하여 인증하려면 사용자는 로컬 컴퓨터에 SSH 키 쌍이 있어야합니다. 원격 서버에서는 공개 키를 사용자의 홈 디렉토리에있는 파일 ~/.ssh/authorized_keys
로 복사해야합니다. 이 파일에는이 계정에 로그인 할 수있는 공개 키 목록이 하나씩 줄바꿈으로 포함되어 있습니다.
클라이언트가 SSH 키 인증을 사용하려는 호스트에 연결하면 서버에이 의도를 알리고 어떤 공개 키를 사용할지 알려줍니다. 그런 다음 서버는 공개 키를위한 authorized_keys
파일을 확인하여 임의의 문자열을 생성하고 해당 공개 키를 사용하여 해당 문자열을 암호화합니다. 이 암호화 된 메시지는 해당 개인 키로만 해독 할 수 있습니다. 서버는이 암호화 된 메시지를 클라이언트에게 보내어 실제로 해당 개인 키를 가지고 있는지 테스트합니다.
이 메시지를 수신하면 클라이언트는 해당 개인 키를 사용하여 이를 해독하고 이전에 협의 된 세션 ID와 함께 공개 된 임의의 문자열을 결합합니다. 그런 다음이 값을 MD5 해시로 생성하고 다시 서버로 전송합니다. 서버는 이미 원래 메시지와 세션 ID를 가지고 있으므로이 값을 사용하여 생성 된 MD5 해시를 비교하고 클라이언트가 개인 키를 가져야한다는 것을 결정할 수 있습니다.
이제 SSH가 작동하는 방법을 알았으므로 SSH를 사용하는 다양한 작업 방법을 설명하기 위해 몇 가지 예제를 논의 할 수 있습니다.
SSH 키 생성 및 작업
이 섹션에서는 클라이언트 기계에서 SSH 키를 생성하고 공개 키를 해당 키를 사용해야 하는 서버에 배포하는 방법에 대해 다룹니다. 이것은 미래의 연결에 대한 증가된 보안 때문에 이전에 키를 생성하지 않은 경우 시작하기에 좋은 섹션입니다.
SSH 키 쌍 생성
로컬 컴퓨터에서 새로운 SSH 공개 및 개인 키 쌍을 생성하는 것은 비밀번호 없이 원격 서버와 인증하는 첫 번째 단계입니다. 좋은 이유가 없다면 항상 SSH 키를 사용하여 인증해야 합니다.
A number of cryptographic algorithms can be used to generate SSH keys, including RSA, DSA, and ECDSA. RSA keys are generally preferred and are the default key type.
로컬 컴퓨터에서 RSA 키 쌍을 생성하려면 다음을 입력하세요:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
이 프롬프트를 사용하여 RSA 개인 키를 저장할 위치를 선택할 수 있습니다. 이것을 기본값으로 남겨두려면 ENTER
를 누르세요. 기본 위치를 선택하면 SSH 클라이언트가 키를 자동으로 찾을 수 있습니다.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
다음 프롬프트에서는 임의의 길이로 암호를 입력하여 개인 키를 보호할 수 있습니다. 기본적으로 여기에 설정한 암호를 사용할 때마다 개인 키를 입력해야 합니다. 이는 추가적인 보안 조치입니다. 이곳을 비워두려면 ENTER
를 눌러주세요. 그러나 개인 키를 획득한 사람이 서버에 로그인할 수 있게 됩니다.
암호를 입력하려면 입력할 때 아무것도 표시되지 않습니다. 이는 보안상의 조치입니다.
OutputYour identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| + |
| o S . |
| o . * + |
| o + = O . |
| + = = + |
| ....Eo+ |
+-----------------+
이 프로시저는 사용자의 홈 디렉토리 내에 숨겨진 .ssh
디렉토리에 있는 RSA SSH 키 쌍을 생성했습니다. 이 파일들은 다음과 같습니다:
~/.ssh/id_rsa
: 개인 키. 이 파일을 공유하지 마십시오!~/.ssh/id_rsa.pub
: 연관된 공개 키. 이것은 자유롭게 공유할 수 있습니다.
더 많은 비트 수로 SSH 키 쌍 생성하기
SSH 키는 기본적으로 2048비트입니다. 이는 일반적으로 충분한 보안으로 간주되지만 보다 견고한 키를 위해 더 많은 비트 수를 지정할 수 있습니다.
이를 위해 원하는 비트 수와 함께 -b
인수를 포함하십시오. 대부분의 서버는 적어도 4096비트 길이의 키를 지원합니다. 더 긴 키는 DDOS 방어 목적으로 허용되지 않을 수 있습니다:
이전에 다른 키를 만든 적이 있다면, 이전 키를 덮어쓸지 물어볼 것입니다:
Overwrite (y/n)?
“예”를 선택하면 이전 키가 덮어씌워지고 해당 키를 사용하여 서버에 로그인할 수 없게 됩니다. 이에 따라 키를 조심히 덮어쓰시기 바랍니다.
개인 키의 암호를 제거하거나 변경하는 방법
개인 키에 암호를 생성하고 변경하거나 제거하려면 쉽게 할 수 있습니다.
참고: 암호를 변경하거나 제거하려면 원래 암호를 알고 있어야 합니다. 키의 암호를 분실했다면 복구 방법이 없으며 새로운 키 쌍을 생성해야 합니다.
암호를 변경하거나 제거하려면 다음을 입력하십시오:
Enter file in which the key is (/root/.ssh/id_rsa):
수정하려는 키의 위치를 입력하거나 기본값을 받아 들이려면 ENTER
를 누르십시오:
Enter old passphrase:
변경하려는 이전 암호를 입력하십시오. 그런 다음 새로운 암호를 입력하라는 메시지가 표시됩니다:
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
여기에 새 암호를 입력하거나 암호를 제거하려면 ENTER
를 누르십시오.
SSH 키 지문 표시
각 SSH 키 쌍은 고유한 키를 식별하는 데 사용할 수 있는 단일 암호화 “지문”을 공유합니다. 다양한 상황에서 유용할 수 있습니다.
SSH 키의 지문을 찾으려면 다음을 입력하십시오:
Enter file in which the key is (/root/.ssh/id_rsa):
키의 올바른 위치인 경우 ENTER
를 누르고 그렇지 않으면 수정된 위치를 입력하십시오. 키의 비트 길이, 지문, 그리고 생성된 계정 및 호스트, 사용된 알고리즘을 포함하는 문자열이 제공됩니다:
Output4096 8e:c4:82:47:87:c2:26:4b:68:ff:96:1a:39:62:9e:4e demo@test (RSA)
SSH-Copy-ID를 사용하여 서버에 공개 SSH 키 복사하기
비밀번호 없이 인증할 수 있는 서버에 공개 키를 복사하려면 다양한 방법을 사용할 수 있습니다.
현재 서버에 기반한 SSH 액세스가 구성되어 있고 ssh-copy-id
유틸리티가 설치된 경우 간단한 프로세스입니다. ssh-copy-id
도구는 많은 Linux 배포판의 OpenSSH 패키지에 포함되어 있으므로 기본적으로 설치되어 있을 수 있습니다.
이 옵션이 있는 경우 다음을 입력하여 공개 키를 쉽게 전송할 수 있습니다:
이것은 원격 시스템의 사용자 계정 암호를 입력하도록 요청합니다:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
암호를 입력한 후에는 ~/.ssh/id_rsa.pub
키의 내용이 사용자 계정의 ~/.ssh/authorized_keys
파일의 끝에 추가됩니다.
OutputNumber of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
지금은 암호없이 해당 계정에 로그인할 수 있습니다:
SSH-Copy-ID 없이 서버로 공개 SSH 키 복사하기
ssh-copy-id
유틸리티를 사용할 수 없지만 원격 서버에 대한 암호 기반 SSH 액세스가 있는 경우 공개 키의 내용을 다른 방식으로 복사할 수 있습니다.
키의 내용을 출력하고 이를 ssh
명령어로 파이핑할 수 있습니다. 원격 측에서는 ~/.ssh
디렉토리가 존재하는지 확인한 후 파이핑된 내용을 ~/.ssh/authorized_keys
파일에 추가할 수 있습니다:
원격 계정의 암호를 입력하라는 메시지가 표시됩니다:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password:
암호를 입력한 후 키가 복사되어 암호없이 로그인할 수 있게 됩니다:
공개 SSH 키를 수동으로 서버에 복사하기
암호 기반 SSH 액세스가 없는 경우 공개 키를 원격 서버에 수동으로 추가해야 합니다.
로컬 컴퓨터에서 공개 키 파일의 내용을 찾을 수 있습니다.
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
이 값을 복사하여 원격 서버의 적절한 위치에 수동으로 붙여넣을 수 있습니다. 원격 서버에 로그인하려면 다른 방법(예: DigitalOcean 웹 콘솔)을 통해 원격 서버에 로그인해야 합니다.
원격 서버에서 ~/.ssh
디렉토리가 없는 경우 다음을 입력하여 만들 수 있습니다:
그 후 다음을 입력하여 ~/.ssh/authorized_keys
파일을 생성하거나 추가할 수 있습니다:
이제 암호 없이 원격 서버에 로그인할 수 있어야 합니다.
기본 연결 지침
다음 섹션에서는 SSH를 사용하여 서버에 연결하는 기본 사항에 대해 다룰 것입니다.
원격 서버에 연결
원격 서버에 연결하고 셸 세션을 열려면 ssh
명령을 사용할 수 있습니다.
가장 간단한 형태는 로컬 머신에서의 사용자 이름이 원격 서버와 동일한 것으로 가정합니다. 이 경우 다음을 사용하여 연결할 수 있습니다:
원격 서버에서 사용자 이름이 다른 경우 다음과 같이 원격 사용자의 이름을 전달해야 합니다:
새 호스트에 처음 연결할 때 다음과 같은 메시지가 표시됩니다:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
현재 호스트의 신뢰성을 인정하려면 yes
를 입력하십시오.
비밀번호 인증을 사용하는 경우 여기서 원격 계정의 비밀번호를 입력하라는 메시지가 표시됩니다. SSH 키를 사용하는 경우 키에 암호가 설정되어 있는 경우 해당 암호를 입력하라는 메시지가 표시됩니다. 그렇지 않으면 자동으로 로그인됩니다.
원격 서버에서 단일 명령 실행
셸 세션을 시작하는 대신 원격 서버에서 단일 명령을 실행하려면 연결 정보 뒤에 명령을 추가할 수 있습니다. 다음과 같이 하십시오:
이 명령은 원격 호스트에 연결하고 자격 증명으로 인증한 후 지정한 명령을 실행합니다. 연결은 즉시 종료됩니다.
다른 포트로 서버에 로그인하기
기본적으로 서버의 SSH 데몬은 포트 22
에서 실행됩니다. SSH 클라이언트는 연결을 시도할 때 이것을 전제로 가정합니다. SSH 서버가 비표준 포트에서 수신 대기 중인 경우 (이것은 나중에 다른 섹션에서 설명됩니다), 클라이언트로 연결할 때 새 포트 번호를 지정해야 합니다.
포트 번호를 지정하여 이 작업을 수행할 수 있습니다. -p
옵션을 사용하십시오:
원격 서버에 로그인할 때마다 이것을 반복하지 않으려면 로컬 컴퓨터의 홈 디렉터리 내 ~/.ssh
디렉터리에 구성 파일을 생성하거나 편집할 수 있습니다.
다음을 입력하여 파일을 편집하거나 생성하십시오:
여기에서 호스트별 구성 옵션을 설정할 수 있습니다. 새 포트를 지정하려면 다음과 같은 형식을 사용하십시오:
Host remote_alias
HostName remote_host
Port port_num
이렇게 하면 명령 줄에서 특정 포트 번호를 지정하지 않고 로그인할 수 있습니다.
암호 입력을 피하기 위해 SSH 키를 SSH 에이전트에 추가하는 방법
개인 SSH 키에 암호가 설정되어 있는 경우 원격 호스트에 연결할 때마다 암호를 입력하라는 프롬프트가 표시됩니다.
반복해서 이를 수행하지 않으려면 SSH 에이전트를 실행할 수 있습니다. 이 작은 유틸리티는 첫 번째로 암호를 입력한 후에 개인 키를 저장합니다. 터미널 세션 동안 사용 가능하며, 앞으로 암호를 다시 입력하지 않고도 연결할 수 있습니다.
이는 SSH 자격 증명을 전달해야 하는 경우에도 중요합니다(이후에 설명됩니다).
SSH 에이전트를 시작하려면 로컬 터미널 세션에 다음을 입력하십시오:
OutputAgent pid 10891
이제 에이전트 프로그램을 시작하고 백그라운드로 넣을 것입니다. 이제 에이전트에 개인 키를 추가해야 합니다. 그래야 키를 관리할 수 있습니다:
Enter passphrase for /home/demo/.ssh/id_rsa:
Identity added: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)
(개인 키를 추가해야 합니다.) 만약 설정된 경우 암호를 입력해야 합니다. 그 후에는 아이덴티티 파일이 에이전트에 추가되어 키를 다시 입력하지 않고도 로그인할 수 있습니다.
서버에서 사용하기 위해 SSH 자격 증명 전달
다른 서버에서 패스워드 없이 한 서버에 연결할 수 있도록 하려면 SSH 키 정보를 전달해야 합니다. 이렇게 하면 로컬 컴퓨터의 자격 증명을 사용하여 연결된 서버를 통해 다른 서버에 인증할 수 있습니다.
먼저 SSH 에이전트를 시작하고 SSH 키를 에이전트에 추가해야 합니다(앞에서 설명한 대로). 이 작업을 마치면 -A
옵션을 사용하여 첫 번째 서버에 연결해야 합니다. 이렇게 하면 세션에 대한 자격 증명이 서버로 전달됩니다:
여기서부터는 SSH 키가 접근 권한이 있는 다른 호스트에 SSH로 연결할 수 있습니다. 로컬 컴퓨터의 개인 SSH 키가 이 서버에 위치한 것처럼 연결됩니다.
서버 측 구성 옵션
이 섹션에는 서버가 응답하는 방식과 허용되는 연결 유형을 형성할 수 있는 일반적인 서버 측 구성 옵션이 포함되어 있습니다.
비밀번호 인증 비활성화
SSH 키가 구성되고 테스트되며 올바르게 작동하는 경우 비밀번호 인증을 비활성화하는 것이 좋습니다. 이렇게 하면 사용자가 SSH를 사용하여 비밀번호로 로그인할 수 없습니다.
이를 위해 원격 서버에 연결하고 루트 또는 sudo 권한으로 /etc/ssh/sshd_config
파일을 엽니다:
파일 내에서 PasswordAuthentication
지시문을 찾습니다. 주석 처리되어 있으면 주석 처리를 해제합니다. 비밀번호 로그인을 비활성화하려면 no
로 설정합니다:
PasswordAuthentication no
변경한 내용을 저장하고 파일을 닫습니다. 변경 사항을 적용하려면 SSH 서비스를 다시 시작해야 합니다.
Ubuntu/Debian에서는:
CentOS/Fedora에서는:
이제 시스템의 모든 계정이 SSH를 사용하여 비밀번호로 로그인할 수 없게 됩니다.
SSH 데몬이 실행되는 포트 변경
어떤 관리자들은 SSH가 실행되는 기본 포트를 변경하는 것을 제안합니다. 이렇게 함으로써 서버가 자동화된 봇으로부터 받는 인증 시도의 수를 줄일 수 있습니다.
SSH 데몬이 수신 대기하는 포트를 변경하려면 원격 서버에 로그인해야 합니다. 해당 사용자로 로그인하거나 sudo
를 사용하여 원격 시스템의 sshd_config
파일을 루트 권한으로 엽니다.
내부에 들어간 후에는 SSH가 실행되는 포트를 변경할 수 있습니다. Port 22
사양을 찾아서 원하는 포트로 수정하십시오. 예를 들어, 포트를 4444
로 변경하려면 다음을 파일에 입력하십시오:
#Port 22
Port 4444
작업이 완료되면 파일을 저장하고 닫으십시오. 변경 사항을 적용하려면 SSH 데몬을 다시 시작해야 합니다.
Ubuntu/Debian의 경우:
CentOS/Fedora의 경우:
데몬이 다시 시작되면 이전 섹션에서 설명한대로 포트 번호를 지정하여 인증해야 합니다.
SSH를 통해 연결할 수 있는 사용자 제한하기
SSH를 통해 로그인할 수 있는 사용자 계정을 명시적으로 제한하려면 SSH 데몬 구성 파일을 편집하는 몇 가지 다른 접근 방법을 사용할 수 있습니다.
원격 서버에서 루트 또는 sudo 권한으로 이 파일을 엽니다.
첫 번째 로그인이 허용되는 계정을 지정하는 방법은 AllowUsers
지시문을 사용하는 것입니다. 파일에서 AllowUsers
지시문을 검색하세요. 존재하지 않는 경우 아무 곳이나 만드세요. 지시문 뒤에 SSH로 로그인을 허용할 사용자 계정을 나열하세요:
AllowUsers user1 user2
파일을 저장하고 닫으세요. 변경 사항을 적용하려면 데몬을 다시 시작하세요.
Ubuntu/Debian의 경우:
CentOS/Fedora의 경우:
그룹 관리에 더 익숙하다면 AllowGroups
지시문을 대신 사용할 수 있습니다. 이 경우 SSH 액세스를 허용해야 하는 단일 그룹을 추가하세요 (이 그룹을 만들고 멤버를 곧 추가할 것입니다):
AllowGroups sshmembers
파일을 저장하고 닫으세요.
이제 지정한 그룹과 일치하는 시스템 그룹(홈 디렉터리 없음)을 만들 수 있습니다. 다음을 입력하여 수행하세요:
필요한 사용자 계정을 이 그룹에 추가해야 합니다. 다음을 입력하여 수행할 수 있습니다:
이제 변경 사항을 적용하려면 SSH 데몬을 다시 시작하세요.
Ubuntu/Debian의 경우:
CentOS/Fedora의 경우:
루트 로그인 비활성화
SSH 사용자 계정에 sudo
권한을 설정한 후 SSH를 통한 루트 로그인을 완전히 비활성화하는 것이 좋습니다.
이를 위해 원격 서버에서 루트 또는 sudo로 SSH 데몬 구성 파일을 엽니다.
내부에서, PermitRootLogin
이라는 지시문을 검색하십시오. 주석 처리되어 있다면 주석 처리를 해제하십시오. 값을 “no”로 변경하십시오:
PermitRootLogin no
파일을 저장하고 닫으십시오. 변경 사항을 적용하려면 SSH 데몬을 다시 시작하십시오.
Ubuntu/Debian에서:
CentOS/Fedora에서:
특정 명령에 대한 루트 액세스 허용
일반적으로 루트 액세스를 비활성화하지만 특정 응용 프로그램이 올바르게 실행되도록 허용하려는 경우가 있습니다. 이러한 예로는 백업 루틴이 있습니다.
이것은 계정을 사용하는 SSH 키가 포함된 root 사용자의 authorized_keys
파일을 통해 수행할 수 있습니다.
이 프로세스에 사용하려는 로컬 컴퓨터의 키를 root 사용자의 서버의 authorized_keys
파일에 추가하십시오 (각 자동 프로세스에 대해 새 키를 생성하는 것이 좋습니다). 여기서는 ssh-copy-id
명령을 사용하여 설명하겠지만 다른 섹션에서 키를 복사하는 방법 중 하나를 사용할 수 있습니다:
이제 원격 서버에 로그인하십시오. 루트 또는 sudo 액세스로 authorized_keys
파일의 항목을 조정해야 합니다.
키를 업로드 한 줄의 시작 부분에 command=
라는 명령을 추가하여이 키가 유효한 명령을 정의하도록합니다. 여기에는 실행 파일의 전체 경로 및 모든 인수가 포함되어야합니다:
command="/path/to/command arg1 arg2" ssh-rsa ...
완료되면 파일을 저장하고 닫으십시오.
이제 루트 또는 sudo 권한으로 sshd_config
파일을 엽니다:
PermitRootLogin
지시문을 찾고 값이 forced-commands-only
로 변경하십시오. 이렇게하면 명령이 지정된 경우에만 SSH 키 로그인이 루트를 사용할 수 있습니다:
PermitRootLogin forced-commands-only
파일을 저장하고 닫으십시오. 변경 사항을 적용하려면 SSH 데몬을 다시 시작하십시오.
Ubuntu/Debian에서는:
CentOS/Fedora에서는:
클라이언트로 X 응용 프로그램 디스플레이 전달
SSH 데몬을 구성하여 서버의 X 응용 프로그램 디스플레이를 클라이언트 컴퓨터로 자동으로 전달하도록 설정할 수 있습니다. 이 기능이 올바르게 작동하려면 클라이언트에 X 윈도우 시스템이 구성되고 활성화되어 있어야합니다.
이 기능을 활성화하려면 원격 서버에 로그인하고 루트 또는 sudo 권한으로 sshd_config
파일을 편집하십시오:
X11Forwarding
지시문을 검색하십시오. 주석 처리되어 있다면 주석 처리를 해제하십시오. 필요한 경우 지시문을 작성하고 값을 “yes”로 설정하십시오:
X11Forwarding yes
파일을 저장하고 닫습니다. 이러한 변경 사항을 적용하려면 SSH 데몬을 다시 시작하십시오.
Ubuntu/Debian에서:
CentOS/Fedora에서:
서버에 연결하고 응용 프로그램의 디스플레이를 전달하려면 클라이언트에서 연결할 때 -X
옵션을 전달해야 합니다:
이 세션을 통해 서버에서 시작된 그래픽 응용 프로그램은 로컬 컴퓨터에 표시됩니다. 성능은 다소 느릴 수 있지만 긴급한 경우 매우 유용합니다.
클라이언트 측 구성 옵션
다음 섹션에서는 연결의 클라이언트 측에서 조정할 수 있는 몇 가지 옵션에 중점을 둘 것입니다.
서버별 연결 정보 정의
로컬 컴퓨터에서 연결하는 서버 중 일부 또는 모두에 대한 개별 구성을 정의할 수 있습니다. 이러한 구성은 SSH 클라이언트가 호출될 때마다 읽히는 ~/.ssh/config
파일에 저장할 수 있습니다.
로컬 컴퓨터의 텍스트 편집기에서 이 파일을 만들거나 엽니다:
안내서에서 찾을 수 있는 지시문 중 하나를 사용하여 각각을 도입 키워드 Host
로 정의하고 별칭 뒤에 오게 합니다. 이를 들여쓰기하여 정의할 수 있습니다:
예제 구성은 다음과 같습니다:
Host testhost
HostName your_domain
Port 4444
User demo
그런 다음 간단히 입력하여 사용자 이름 demo
을 사용하여 포트 4444
에서 your_domain
에 연결할 수 있습니다:
또한 복수의 호스트를 일치시키기 위해 와일드카드를 사용할 수 있습니다. 후속 일치가 이전 것을 무시할 수 있으므로 가장 일반적인 일치 항목을 맨 위에 두는 것이 좋습니다. 예를 들어, 모든 연결을 기본적으로 X 포워딩을 허용하지 않도록 설정하고 파일에 다음을 넣어서 your_domain
에 대한 오버라이드를 추가할 수 있습니다:
Host *
ForwardX11 no
Host testhost
HostName your_domain
ForwardX11 yes
Port 4444
User demo
작업을 마치면 파일을 저장하고 닫습니다.
타임아웃을 피하기 위해 연결 유지
준비가 되기 전에 SSH 세션에서 연결이 끊어지는 경우 연결이 시간 초과될 수 있습니다.
이러한 상황을 피하기 위해 정기적으로 서버로 패킷을 보내도록 클라이언트를 구성할 수 있습니다:
로컬 컴퓨터에서 이를 모든 연결에 대해 구성하려면 ~/.ssh/config
파일을 편집하십시오. 지금 열어주세요:
파일 상단에 아래와 같이 새로운 섹션을 정의하세요. 모든 호스트에 대해 매칭될 것입니다. ServerAliveInterval
을 “120”으로 설정하여 두 분마다 서버에 패킷을 보내도록합니다. 이렇게하면 연결을 닫지 않도록 서버에 통지됩니다:
Host *
ServerAliveInterval 120
작업을 마치면 파일을 저장하고 닫으십시오.
호스트 확인 비활성화
기본적으로 새로운 서버에 연결할 때마다 원격 SSH 데몬의 호스트 키 지문이 표시됩니다.
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
이렇게 구성된 이유는 연결하려는 호스트의 진위를 확인하고 악의적인 사용자가 원격 호스트로 위장하려고하는 경우를 감지하기 위함입니다.
특정 상황에서이 기능을 비활성화하려는 경우가 있을 수 있습니다. 참고: 이것은 큰 보안 리스크가 될 수 있으므로 시스템을이와 같이 설정하는 경우 무엇을하는지 확인하십시오.
변경하려면 로컬 컴퓨터의 ~/.ssh/config
파일을 엽니다:
파일 상단에 아래와 같이 새로운 섹션을 정의하세요. 모든 호스트에 대해 매칭될 것입니다. StrictHostKeyChecking
지시문을 no
로 설정하여 새로운 호스트를 자동으로 known_hosts
파일에 추가합니다. UserKnownHostsFile
를 /dev/null
로 설정하여 새로운 또는 변경된 호스트에 대해 경고하지 않습니다:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
경우에 따라 옵션을 뒤집어 해당 호스트에 대한 확인을 활성화할 수 있습니다. StrictHostKeyChecking
의 기본값은 ask
입니다:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Host testhost
HostName your_domain
StrictHostKeyChecking ask
UserKnownHostsFile /home/demo/.ssh/known_hosts
단일 TCP 연결을 통한 SSH 다중화
새로운 TCP 연결을 설정하는 데 시간이 오래 걸릴 수 있는 상황이 있습니다. 동일한 컴퓨터에 여러 연결을 만들고 있다면 다중화를 활용할 수 있습니다.
SSH 다중화는 여러 SSH 세션에 동일한 TCP 연결을 재사용합니다. 이렇게 하면 새로운 세션을 설정하는 데 필요한 일부 작업이 제거되어 속도가 향상될 수 있습니다. 연결 수를 제한하는 것도 다른 이유로 유용할 수 있습니다.
다중화를 설정하려면 연결을 수동으로 설정하거나 클라이언트를 자동으로 사용 가능한 경우에 다중화하도록 구성할 수 있습니다. 여기서는 두 번째 옵션을 설명하겠습니다.
다중화를 구성하려면 로컬 머신의 SSH 클라이언트 구성 파일을 편집하십시오:
이미 파일의 맨 위에 와일드카드 호스트 정의가 없는 경우 지금 추가하십시오 (Host *
로). 다중화 구성을 설정하기 위해 ControlMaster
, ControlPath
, 및 ControlPersist
값을 설정할 것입니다.
ControlMaster
를 “auto”로 설정하여 가능한 경우 자동으로 다중화를 허용해야 합니다. ControlPath
는 제어 소켓의 경로를 설정합니다. 첫 번째 세션에서 이 소켓을 생성하고 후속 세션에서는 사용자 이름, 호스트 및 포트로 레이블이 지정되므로 찾을 수 있습니다.
ControlPersist
옵션을 1
로 설정하면 초기 마스터 연결을 백그라운드에서 실행할 수 있습니다. 1
은 SSH 세션이 종료된 후 1초 후에 TCP 연결이 자동으로 종료되어야 함을 지정합니다.
Host *
ControlMaster auto
ControlPath ~/.ssh/multiplex/%r@%h:%p
ControlPersist 1
작업을 마치면 파일을 저장하고 닫습니다. 이제 실제로 제어 경로에 지정한 디렉터리를 생성해야 합니다:
이제 동일한 기계와의 모든 세션은 기존 소켓과 TCP 연결을 사용하려고 시도합니다. 마지막 세션이 종료되면 연결이 1초 후에 끊어집니다.
일시적으로 다중화 구성을 우회해야 하는 경우 -S
플래그와 none
을 사용하여 이를 수행할 수 있습니다:
SSH 터널 설정
안전한 SSH 터널을 통해 다른 트래픽을 터널링하는 것은 제한적인 방화벽 설정을 우회하는 훌륭한 방법입니다. 또한 그렇지 않으면 암호화되지 않은 네트워크 트래픽을 암호화하는 훌륭한 방법입니다.
서버로의 로컬 터널링 구성
SSH 연결을 사용하여 로컬 호스트의 포트에서 원격 호스트의 포트로 트래픽을 터널링할 수 있습니다.
A local connection is a way of accessing a network location from your local computer through your remote host. First, an SSH connection is established to your remote host. On the remote server, a connection is made to an external (or internal) network address provided by the user and traffic to this location is tunneled to your local computer on a specified port.
이는 종종 방화벽을 우회하여 제한이 덜한 네트워킹 환경으로 터널을 지어 사용합니다. 다른 흔한 용도는 원격 위치에서 “로컬호스트 전용” 웹 인터페이스에 접근하는 것입니다.
원격 서버로의 로컬 터널을 설정하려면 연결할 때 -L
매개변수를 사용해야 하며, 세 가지의 추가 정보를 제공해야 합니다:
- 터널 연결에 액세스하려는 로컬 포트.
- 원격 호스트가 연결할 호스트.
- 원격 호스트가 연결할 포트.
이들은 위의 순서대로 (콜론으로 구분하여) -L
플래그의 인수로 제공됩니다. 우리는 또한 SSH가 실행하기 전에 백그라운드로 들어가도록 하는 -f
플래그와 원격 쪽에서 셸을 열지 않거나 프로그램을 실행하지 않도록 하는 -N
플래그를 사용할 것입니다.
예를 들어, 원격 호스트의 포트 80에 있는 your_domain
에 연결하고, 이 연결을 로컬 머신의 포트 8888에서 사용할 수 있게 하려면 다음과 같이 입력할 수 있습니다:
이제 로컬 웹 브라우저를 127.0.0.1:8888
로 지시하면 your_domain
의 포트 80
에 있는 내용을 볼 수 있습니다.
A more general guide to the syntax is:
연결이 백그라운드에서 작동하므로 그것을 종료하려면 해당 PID를 찾아야 합니다. 포트를 포워딩한 것을 찾아서 PID를 찾을 수 있습니다:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -L 8888:your_domain:80 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
그런 다음 SSH 명령과 일치하는 줄의 두 번째 열에 있는 숫자인 PID를 대상으로 프로세스를 종료할 수 있습니다:
또 다른 옵션은 -f
플래그 없이 연결을 시작하는 것입니다. 이렇게 하면 연결이 포그라운드에 유지되어 포워딩 기간 동안 터미널 창을 사용할 수 없습니다. 이 방법의 장점은 터널을 쉽게 종료할 수 있다는 것입니다. CTRL-C
를 입력하여 터널을 종료할 수 있습니다:
서버에 원격 터널링 구성하기
SSH 연결을 사용하여 로컬 호스트의 포트에서 원격 호스트의 포트로 트래픽을 터널링할 수 있습니다.
원격 터널에서 원격 호스트에 연결됩니다. 터널을 만들 때 원격 포트가 지정됩니다. 원격 호스트의 이 포트는 그런 다음 로컬 컴퓨터에서 연결된 호스트와 포트 조합으로 터널링됩니다. 이를 통해 원격 컴퓨터가 로컬 컴퓨터를 통해 호스트에 액세스할 수 있게 됩니다.
이는 외부 연결이 차단된 내부 네트워크에 액세스를 허용해야 할 때 유용할 수 있습니다. 방화벽이 네트워크에서 외부 연결을 허용하는 경우 원격 머신으로 연결하여 해당 머신에서 내부 네트워크의 위치로 트래픽을 터널링할 수 있습니다.
원격 서버에 원격 터널을 설정하려면 연결할 때 -R
매개변수를 사용해야하며 세 가지 추가 정보를 제공해야합니다:
- 원격 호스트가 터널링 된 연결에 액세스 할 수있는 포트입니다.
- 로컬 컴퓨터를 연결하려는 호스트입니다.
- 로컬 컴퓨터가 연결하려는 포트입니다.
이들은 위의 순서대로 콜론으로 구분 된 인수로 -R
플래그에 전달됩니다. 또한 백그라운드로 이동하기 전에 SSH를 실행하는 -f
플래그와 원격 쪽에서 셸을 열지 않거나 프로그램을 실행하지 않는 -N
플래그도 사용합니다.
예를 들어, 로컬 컴퓨터의 포트 80에서 your_domain
에 연결하여 원격 호스트의 포트 8888
에서 연결을 사용할 수 있습니다.
이제 원격 호스트에서 웹 브라우저를 127.0.0.1:8888
로 열면 포트 80
에있는 your_domain
의 내용을 볼 수 있습니다.
A more general guide to the syntax is:
연결이 백그라운드에서 이루어지므로 해당 PID를 찾아서 종료해야합니다. 이를 위해 포워딩한 포트를 검색하여 PID를 찾을 수 있습니다:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -R 8888:your_domain:80 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
그런 다음 SSH 명령과 일치하는 줄의 두 번째 열에있는 PID 인 번호를 대상으로 프로세스를 종료 할 수 있습니다:
다른 옵션은 -f
플래그 없이 연결을 시작하는 것입니다. 이렇게 하면 연결이 foreground에 유지되어 전송 기간 동안 터미널 창을 사용할 수 없게 됩니다. 이 방법의 장점은 터널을 쉽게 종료할 수 있다는 것입니다. CTRL-C
를 입력하여 종료할 수 있습니다.
원격 서버로의 동적 터널링 구성
SSH 연결을 사용하여 로컬 호스트의 포트에서 원격 호스트의 포트로 트래픽을 터널링할 수 있습니다.
A dynamic tunnel is similar to a local tunnel in that it allows the local computer to connect to other resources through a remote host. A dynamic tunnel does this by simply specifying a single local port. Applications that wish to take advantage of this port for tunneling must be able to communicate using the SOCKS protocol so that the packets can be correctly redirected at the other side of the tunnel.
이 로컬 포트로 전달된 트래픽은 원격 호스트로 전송됩니다. 거기서 SOCKS 프로토콜이 해석되어 원하는 최종 위치로의 연결이 설정됩니다. 이 설정을 통해 SOCKS 호환 애플리케이션이 여러 정적 터널을 사용하지 않고 원격 서버를 통해 여러 위치에 연결할 수 있습니다.
연결을 설정하기 위해 터널에 액세스하려는 로컬 포트와 함께 -D
플래그를 전달할 것입니다. 또한 실행 전에 SSH가 백그라운드로 들어가도록 하는 -f
플래그와 원격 쪽에서 셸을 열지 않거나 프로그램을 실행하지 않는 -N
플래그를 사용할 것입니다.
예를 들어, 포트 7777
에서 터널을 설정하려면 다음을 입력할 수 있습니다:
여기서는 SOCKS 인식 애플리케이션(예: 웹 브라우저)을 선택한 포트로 지시할 수 있습니다. 응용 프로그램은 해당 포트와 관련된 소켓으로 정보를 보냅니다.
소켓 포트로의 트래픽을 제어하는 방법은 응용 프로그램에 따라 다릅니다. 예를 들어, Firefox에서 일반적인 위치는 환경 설정 > 고급 > 설정 > 수동 프록시 구성입니다. Chrome에서는 --proxy-server=
플래그를 설정하여 응용 프로그램을 시작할 수 있습니다. 로컬호스트 인터페이스와 전달한 포트를 사용하려고 할 것입니다.
연결이 백그라운드에서 이루어지기 때문에, 그것을 종료하려면 해당 PID를 찾아야 합니다. 전달한 포트를 검색하여 이를 할 수 있습니다:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -D 7777 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
그런 다음 SSH 명령어와 일치하는 라인의 두 번째 열에있는 PID, 즉 숫자를 대상으로하여 프로세스를 종료할 수 있습니다:
또 다른 옵션은 -f
플래그를 사용하지 않고 연결을 시작하는 것입니다. 이렇게하면 연결이 전방에 유지되어 전달 기간 동안 터미널 창을 사용할 수 없습니다. 이것의 장점은 터널을 CTRL-C
를 입력하여 쉽게 종료할 수 있다는 것입니다.
SSH 이스케이프 코드를 사용하여 연결 제어
SSH 세션을 설정 한 후에도 터미널 내에서 연결을 제어할 수 있습니다. 우리는 SSH 이스케이프 코드라는 것을 사용하여 세션 내에서 로컬 SSH 소프트웨어와 상호 작용할 수 있습니다.
클라이언트 측에서의 연결 끊기 (갇힌 또는 멈춘 세션에서 탈출하는 방법)
OpenSSH의 가장 유용한 기능 중 하나는 세션의 특정 측면을 내부에서 제어할 수 있는 능력입니다.
이러한 명령은 SSH 세션 내에서 ~
제어 문자로 시작하여 실행할 수 있습니다. 제어 명령은 항상 ENTER 키를 누르기 전에 첫 번째로 입력된 경우에만 해석됩니다.
가장 유용한 제어 중 하나는 클라이언트에서 연결을 종료하는 기능입니다. 일반적으로 SSH 연결은 서버에 의해 닫힙니다. 그러나 서버에 문제가 있거나 연결이 끊어진 경우 문제가 발생할 수 있습니다. 클라이언트 측에서 연결을 끊음으로써 연결을 깨끗하게 닫을 수 있습니다.
클라이언트에서 연결을 닫으려면 제어 문자 (~
)와 점을 사용하십시오. 연결에 문제가 있는 경우 화면이 멈춘 터미널 세션 상태일 수 있습니다. 피드백이 없더라도 명령을 입력하여 클라이언트 측에서 연결을 끊으십시오:
연결이 즉시 닫혀 로컬 셸 세션으로 돌아갑니다.
SSH 세션을 백그라운드로 이동
OpenSSH의 가장 유용한 기능 중 하나는 연결 내에서 세션의 특정 측면을 제어할 수 있는 능력입니다.
이러한 명령은 SSH 연결 내에서 ~
제어 문자로 시작하여 실행할 수 있습니다. 제어 명령은 항상 줄 바꿈 후에 입력된 첫 번째 것이어야만 해석됩니다. 따라서 사용하기 전에 항상 한 번 또는 두 번 ENTER
키를 누르세요.
이 기능 중 하나는 SSH 세션을 백그라운드로 이동하는 것입니다. 이를 위해 제어 문자(~
)를 제공한 다음 일반적인 키보드 바로 가기를 실행해야 합니다(CTRL-z):
이렇게 하면 연결이 백그라운드로 이동되어 로컬 쉘 세션으로 돌아갑니다. SSH 세션으로 돌아가려면 일반적인 작업 제어 메커니즘을 사용할 수 있습니다.
가장 최근에 백그라운드로 이동된 작업을 즉시 다시 활성화하려면 다음을 입력하세요:
여러 개의 백그라운드 작업이 있는 경우 다음을 입력하여 사용 가능한 작업을 볼 수 있습니다:
Output[1]+ Stopped ssh username@some_host
[2] Stopped ssh username@another_host
그런 다음 첫 번째 열의 인덱스와 백분율 기호를 사용하여 작업 중 하나를 전경으로 가져올 수 있습니다:
기존 SSH 연결에서 포트 포워딩 옵션 변경
OpenSSH의 가장 유용한 기능 중 하나는 세션의 특정 측면을 연결 내에서 제어할 수 있는 능력입니다.
이러한 명령은 SSH 연결 내에서 ~
제어 문자로 시작하여 실행할 수 있습니다. 제어 명령은 새 줄 다음에 입력된 것이어야만 해석됩니다. 따라서 항상 하나 또는 두 번의 ENTER를 누른 후에 사용하세요.
이를 통해 사용자는 연결이 이미 설정된 후에도 포트 포워딩 구성을 변경할 수 있습니다. 이를 통해 포트 포워딩 규칙을 동적으로 생성하거나 해제할 수 있습니다.
이러한 기능은 SSH 명령 줄 인터페이스의 일부이며, 연결 도중 제어 문자(~
)와 “C”를 사용하여 액세스할 수 있습니다:
ssh>
SSH 명령 프롬프트가 제공되며, 매우 제한된 유효한 명령 집합이 있습니다. 사용 가능한 옵션을 보려면이 프롬프트에서 -h
를 입력할 수 있습니다. 아무것도 반환되지 않으면 SSH 출력의 상세 수준을 몇 번 사용하여 증가시켜야 할 수 있습니다:
Commands:
-L[bind_address:]port:host:hostport Request local forward
-R[bind_address:]port:host:hostport Request remote forward
-D[bind_address:]port Request dynamic forward
-KL[bind_address:]port Cancel local forward
-KR[bind_address:]port Cancel remote forward
-KD[bind_address:]port Cancel dynamic forward
보시다시피, 적절한 옵션을 사용하여 전달 옵션 중 하나를 쉽게 구현할 수 있습니다 (자세한 정보는 전달 섹션을 참조하십시오). 또한 관련된 “kill” 명령을 사용하여 터널을 파괴할 수도 있습니다. 이 명령은 전달 유형 글자 앞에 “K”가 붙습니다. 예를 들어, 로컬 전달을 종료하려면 (-L
), -KL
명령을 사용할 수 있습니다. 이를 위해 포트만 제공하면 됩니다.
따라서 로컬 포트 전달을 설정하려면 다음을 입력할 수 있습니다:
로컬 컴퓨터의 포트 8888
은 이제 연결 중인 호스트의 웹 서버와 통신할 수 있게 될 것입니다. 완료되면 해당 전달을 해제하려면 다음을 입력하십시오:
결론
위의 지침은 대부분의 사용자가 일상적으로 SSH에 대해 필요로 할 정보를 다룰 것입니다. 다른 유용한 팁이나 좋아하는 구성 및 방법을 공유하고 싶다면 아래 댓글을 자유롭게 사용하십시오.