사용자에 따라 다른 서버로 SSH를 보내시겠습니까?

사용자에 따라 다른 서버로 SSH를 보내시겠습니까?

내 라우터가 특정 사용자 이름에 대한 SSH 로그인을 내부 네트워크의 다른 서버로 전달하도록 하는 쉬운 방법이 있습니까?

예를 들어, ssh router@url을 입력하면 라우터에 라우터로 로그인되고, ssh steve@url을 입력하면 서버에 steve로 로그인됩니다.

또한 간단하고 사용하기 쉽도록 하려면 서버측 솔루션이어야 합니다.

답변1

나는 당신이 요구하는 것과 같은 것을 본 적이 없지만, 당신의 질문을 올바르게 이해했다면 당신은 댓글에서 Chris Tang이 말한 것을 하고 싶을 것입니다. 호스트마다 서로 다른 포트를 사용합니다. 예를 들어 서버는 포트 22를 사용하고 라우터는 포트 222를 사용합니다. 그러면 다음과 같이 서버에 로그인할 수 있고, ssh steve@url라우터에서는 다음과 같이 로그인할 수 있습니다 ssh -p 222 router@url.

OpenSSH 클라이언트에는 별칭을 정의할 수 있는 구성 파일이 있습니다. SSH를 통해 자주 연결하는 경우 유용할 수 있습니다. 다음은 두 가지 최소 예입니다("url"을 실제 URL로 바꾸는 것을 잊지 마세요).

# ~/.ssh/config

Host server
    User steve
    HostName url
    Port 22
Host router
    User router
    HostName url
    Port 222

이제 서버에 SSH로 연결 ssh server하고 라우터에 SSH로 연결할 수 있습니다 ssh router.

여전히 한 포트에서만 이 작업을 수행하려는 경우 서버에 SSH로 연결한 다음 서버에서 라우터로(또는 그 반대로) SSH를 수행하는 것이 좋습니다. 또는 다음과 같은 사용자를 생성할 수 있습니다.라우터서버에서 라우터에 자동으로 로그인하는 로그인 스크립트를 만듭니다. 로그인 셸(및 시스템을 언급하지 않은 나머지 소프트웨어)에 따라 다음을 수행할 수 있습니다.

# Create a new user on the server
useradd -m router -p MyPassWordABC123

# Log in as the new user
su router

# Generate a new SSH key
ssh-keygen -t rsa -C "router@server" # You can safely accept the defaults.

# Add your key to authorized keys on the router to be able to log in without password
ssh-copy-id [email protected]
# Try logging into the router to verify this works

# Add a startup command to your .profile (depends on your shell, .profile works for at least bash)
echo "ssh [email protected]" >> ~/.profile

(내 생각에는) 이것이 이 문제에 대한 추악한 해결책이라는 점을 언급하고 싶습니다.

관련 정보