SSH 명령

SSH 명령

2022-05-17 last update

9 minutes reading ssh terminal
Secure Shell(SSH)은 클라이언트와 서버 간의 암호화 연결을 위한 암호화 네트워크 프로토콜입니다.ssh 클라이언트가 원격 컴퓨터에서 ssh 서버에 안전한 연결을 만듭니다.암호화된 연결은 서버에서 명령, X11 터널, 포트 전송 등을 수행하는 데 사용할 수 있다.무료와 상용을 포함한 많은 사용 가능한 SSH 클라이언트가 있는데, 그 중에서 OpenSSH는 가장 광범위한 클라이언트를 사용한다.Linux, OpenBSD, Windows, macOS를 포함한 모든 주요 플랫폼에서 사용할 수 있습니다.본고는 OpenSSH 명령행 클라이언트(ssh를 사용하여 원격 기기에 로그인하여 명령을 실행하거나 다른 조작을 수행하는 방법을 설명한다.

OpenSSH 클라이언트 설치

OpenSSH 클라이언트 프로그램은 ssh라고 불리며 터미널에서 호출할 수 있다.OpenSSH 클라이언트 패키지는 scp
sftp ssh 명령과 함께 설치합니다.

Linux에 OpenSSH 클라이언트 설치

OpenSSH 클라이언트는 기본적으로 대부분의 Linux 릴리스에 사전 설치되어 있습니다.시스템에 ssh 클라이언트가 설치되어 있지 않으면 패키지 관리자를 사용하여 설치할 수 있습니다.

Ubuntu 및 Debian에 OpenSSH 설치

sudo apt updatesudo apt install openssh-client

CentOS 및 Fedora에 OpenSSH 설치

sudo dnf install openssh-clients
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Windows 10에 OpenSSH 클라이언트 설치

대부분의 Windows 사용자들은 Putty를 사용하여 SSH를 통해 원격 컴퓨터에 연결한다.그러나 최신 버전의 Windows 10에는 OpenSSH 클라이언트와 서버가 포함되어 있습니다.두 소프트웨어 패키지는 모두 GUI 또는 PowerShell을 통해 설치할 수 있습니다.OpenSSH 패키지의 정확한 이름을 찾으려면 다음과 같은 명령을 입력하십시오:
Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
이 명령은 다음과 같은 내용을 되돌려야 합니다:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
패키지 이름을 알면 설치를 실행하십시오:
Path          :
Online        : True
RestartNeeded : False
성공하면 출력은 다음과 같습니다:
ssh [OPTIONS] [[email protected]]:HOST

macOS에 OpenSSH 클라이언트 설치

기본적으로macOS는 OpenSSH 클라이언트와 함께 제공됩니다.

ssh 명령 사용 방법

원격 시스템에서 SSH 서버를 실행하려면 SSH를 통해 원격 시스템에 로그인해야 합니다.
  • 원격 시스템에서 SSH 서버를 실행해야 합니다.
  • SSH 포트는 원격 컴퓨터 방화벽에서 열어야 합니다.
  • 원격 계정의 사용자 이름과 비밀번호를 알아야 합니다.이 계정에는 적절한 원격 로그인 권한이 필요합니다.ssh 명령의 기본 구문은 다음과 같습니다.
    ssh ssh.
    명령을 사용하려면 터미널이나 PowerShell을 열고 ssh를 입력한 다음 원격 호스트 이름을 입력하십시오.
    The authenticity of host 'ssh. (192.168.121.111)' can't be established.
    ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
    Are you sure you want to continue connecting (yes/no)?
    
    SSH를 통해 원격 시스템에 처음 연결할 때 다음과 같은 메시지를 볼 수 있습니다.
    Warning: Permanently added 'ssh.' (ECDSA) to the list of known hosts.
    
    [email protected]'s password:
    
    각 호스트에는 고유한 지문이 있으며 이 지문은 ssh 파일에 저장됩니다.~/.ssh/known_hosts를 입력하면 암호를 묻는 메시지가 표시되는 원격 지문이 저장됩니다.
    ssh [email protected]
    암호를 입력하면 원격 컴퓨터에 로그인합니다.사용자 이름이 제공되지 않은 경우 yes 명령은 현재 시스템 로그인 이름을 사용합니다.(adsbygoogle=window.adsbygoogle | |[]).추진({});다른 사용자로 로그인하려면 다음 형식으로 사용자 이름과 호스트를 지정합니다.
    ssh -l username hostname
    또는 ssh 옵션을 사용하여 사용자 이름을 지정할 수 있습니다.
    ssh -p 5522 [email protected]
    기본적으로 포트가 제공되지 않으면 SSH 클라이언트는 포트 22의 원격 서버에 연결하려고 합니다.일부 서버에서 관리자는 changing the default SSH port
    자동 공격의 위험을 낮추어 서버에 추가 안전층을 추가합니다.기본값이 아닌 포트에 연결하려면 -l 옵션을 사용하여 포트를 지정합니다.
    ssh -v [email protected]
    인증 또는 접속 문제가 발생하면 -p 옵션을 사용하여 디버그 메시지를 인쇄합니다
    Host dev
        HostName dev.
        User mike
        Port 4422
    
    . 세부 정보를 추가하려면 -v 또는 ssh.-vv 명령은 많은 옵션을 수락합니다.모든 옵션의 전체 목록을 보려면 터미널-vvv을 입력하고 ssh 매뉴얼 페이지를 읽으십시오.

    SSH 구성 파일

    만약에 매일 SSH를 통해 여러 개의 원격 시스템에 연결한다면 모든 원격 IP 주소, 다른 사용자 이름, 비표준 포트와 각종 명령행 옵션을 기억하는 것은 불가능하지 않아도 매우 어렵다는 것을 알게 될 것입니다.OpenSSH 클라이언트는 각 사용자 프로파일ssh에 설정된 옵션을 읽습니다.이 파일에서는 연결된 원격 시스템마다 다른 SSH 옵션을 저장할 수 있습니다.다음은 SSH 설정 예시를 보여 줍니다.
    ssh -p 4422 [email protected]
    입력man ssh을 통해 SSH 클라이언트를 호출할 때 이 명령은 ~/.ssh/config 파일을 읽고 dev 호스트에 지정한 연결 정보를 사용합니다.이 예에서 ssh dev는 다음과 같습니다.
    ssh-keygen -t rsa -b 4096 -C "[email protected]"
    더 많은 정보는 SSH config file의 기사를 보십시오.

    공개 키 인증

    SSH 프로토콜은 다양한 인증 메커니즘을 지원합니다.공개 키 기반 인증 메커니즘으로 원격 서버에 로그인할 수 있음without having to type your password
    . 이 방법의 작동 원리는 인증을 위한 암호화 키 쌍을 만드는 것입니다.개인 키는 클라이언트 장치에 저장되며, 공개 키는 로그인할 모든 원격 서버로 전송됩니다.원격 서버는 키 인증을 받을 수 있도록 설정해야 합니다.로컬 컴퓨터에 SSH 키 쌍이 없으면 다음을 입력하여 키 쌍을 생성할 수 있습니다. 그러면 보안 암호 구문을 입력하라는 메시지가 나타납니다.암호 단어를 사용하고 싶은지 여부는 너 자신에게 달려 있다.키 쌍을 획득한 후 공개 키를 원격 서버에 복사합니다.
    ssh-copy-id [email protected]
    원격 사용자 비밀번호를 입력하면 공개 키는 원격 사용자~/.ssh/config 파일에 추가됩니다.키를 업로드하면 암호를 입력하라는 프롬프트 없이 원격 서버에 로그인할 수 있습니다.키 기반 인증을 설정하면 로그인 과정을 간소화하고 서버의 전체적인 안전성을 향상시킬 수 있습니다.

    포트 전달

    SSH 터널이나 SSH 포트 리트윗은 클라이언트와 서버 기기 간에 암호화된 SSH 연결을 만드는 방법으로 이 연결을 통해 서비스 포트를 중계할 수 있다.SSH 리트윗은 암호화되지 않은 프로토콜(예: VNC 또는 FTP)을 사용하는 서비스의 네트워크 데이터를 전송하거나 지리적 제약 사항에 액세스하거나 중간 방화벽을 우회하는 데 유용합니다.기본적으로 TCP 포트를 전송하고 보안 SSH 연결을 통해 트래픽을 터널로 전송할 수 있습니다.SSH 포트 전송에는 세 가지 유형이 있습니다.

    로컬 포트 전달

    로컬 포트 전송을 사용하면 클라이언트 호스트에서 SSH 서버 호스트로 연결을 전송한 다음 대상 호스트 포트로 전송할 수 있습니다.로컬 포트 전송을 만들려면 ssh dev 옵션을 authorized_keys 클라이언트에게 전달하십시오.
    ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f [email protected]
    f 옵션은 -L 명령이 백그라운드에서 실행되고 ssh 원격 명령이 실행되지 않는다는 것을 알려줍니다.

    원격 포트 전달

    원격 포트 전달은 로컬 포트 전달과 상반된다.서버 호스트에서 클라이언트 호스트로 포트를 전달한 다음 대상 호스트 포트로 전달합니다.(adsbygoogle=window.adsbygoogle | |[]).추진({});ssh 옵션 알림-N 원격 포트 전달 생성:
    ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f [email protected]

    동적 포트 전달

    동적 포트 전달 생성SOCKS proxy server
    그것은 일련의 포트에서 통신을 허용한다.동적 포트 전송(SOCKS)을 만들려면 -R 옵션을 ssh 클라이언트에게 전달하십시오.
    ssh -D [LOCAL_IP:]LOCAL_PORT  -N -f [email protected]
    자세한 정보와 단계별 설명은 How to Set up SSH Tunneling (Port Forwarding)의 글을 참조하십시오.

    결론

    SSH를 통해 원격 서버에 연결하려면 ssh 명령을 사용하고 원격 사용자 이름과 호스트 이름-D을 사용합니다.ssh 명령을 사용하는 방법을 이해하는 것은 원격 서버를 관리하는 데 매우 중요합니다.만약 무슨 문제가 있으면 아래에 메시지를 남겨 주십시오.