콘솔 연결에서 할 수 있는 모든 작업을 SSH 연결에서 수행할 수 있습니까?
즉, 시스템을 부팅하고 SSH 서버를 설치 및 구성한 후 콘솔을 사용하지 않고 SSH를 통해 해당 시스템과 추가 상호 작용을 수행할 수 있습니까(어떤 이유로 SSH 서버를 사용할 수 없는 경우 제외)?
답변1
예.
다음은 그중 몇 가지입니다.
슈퍼유저 로그인
FreeBSD 및 OpenBSD와 같은 시스템에서 init
프로그램은 파일 secure
에 표시된 터미널 에 대한 단일 사용자 모드의 사용자 #0 로그인만 허용합니다 /etc/ttys
. 그리고 login
프로그램(FreeBSD의 PAM 모듈을 통해 OpenBSD에서 직접)은 secure
다중 사용자 모드에서 이 플래그를 적용합니다.
데비안과 우분투는 비슷한 /etc/securetty
메커니즘을 가지고 있습니다. 이들 모두에서 콘솔과 커널 가상 터미널(참고, 반드시 콘솔일 필요는 없음)은 기본적으로 수퍼유저 로그인을 허용합니다.
OpenBSD에서 SSH의 기본 설정은 암호나 키보드 대화형 인증을 사용할 때 수퍼유저로 로그인을 허용하지 않는 것입니다(그러나 공개 키 인증을 사용할 때는 허용합니다). FreeBSD의 SSH에 대한 기본 기본 설정은 수퍼유저 로그인을 전혀 허용하지 않는 것입니다.
프레임버퍼 출력 이벤트/USB 입력 루틴
사람들은 SSH 연결을 통해 X 터널을 구축하고 터미널 장치를 사용하여 프로그램과 상호 작용할 수 있습니다. 그러나 Linux의 이벤트 장치 시스템, USB HID 장치 및 프레임 버퍼 장치를 통해 I/O를 수행하려는 프로그램은 SSH를 통해 수행할 수 없습니다.
추가 읽기
소리
사운드는 일반적으로 SSH를 통해서도 전송되지 않습니다. LAN을 통해 사운드 방출 프로그램을 PulseAudio 서버로 수동으로 지정하거나 원격 사운드 클라이언트에서 로컬 PulseAudio 서버로 수동으로 터널링할 수 있습니다. 그러나 우선 모든 사운드가 PulseAudio인 것은 아닙니다.
추가 읽기
점자
BRLTTY와 같은 프로그램은 가상 터미널 장치의 문자+속성 셀 배열에 대한 직접 액세스가 필요합니다. 서버에 BRLTTY가 설정된 경우 SSH 로그인 세션에 액세스하여 점자로 표시할 수 없지만 커널 가상 터미널 로그인 세션은 표시할 수 있습니다.
추가 읽기
- 조나단 데보인 폴라드(2014).nosh 사용자 공간 가상 터미널과 BRLTTY 결합. 소프트웨어.
- 접근성. 데비안 위키.
비상 모드 및 구조 모드 작동
부팅비상 모드 또는 구조 모드SSH 서버를 시작하지 마십시오. 두 모드 모두 SSH 서버와 같은 네트워크 서비스는 물론 네트워크 지원에 대한 모든 번거로움을 시작하지 않습니다.
예측할 수 없는 PolicyKit 콘텐츠
PolicyKit의 개념은 다음과 같습니다.활성 및 비활성 로그인 세션. 이는 /etc/ttys
시스템의 속성 집합( on
, secure
, network
, ) dialup
을 "활성"과 "비활성" 사이의 단일 참/거짓 스위치로 축소하려고 시도합니다. 이것은 SSH와 그 유사품이 존재하는 세계에는 적합하지 않습니다.
콘솔이나 커널 가상 터미널에 로그인할 때만 "활성" 로그인 세션을 가질 수 있습니다. SSH를 통한 로그인은 항상 "비활성" 로그인 세션으로 간주됩니다. 소프트웨어 작성자와 시스템 관리자가 활성 및 비활성 로그인 세션에서 작업을 수행하기 위해 서로 다른 권한을 부여할 수 있기 때문에 동작에 놀라운 차이가 발생할 수 있습니다.
추가 읽기
- 로컬이 아닌 사용자에 대한 시스템 관리자 권한 활성화 - "polkit"은 정확히 어떻게 작동합니까?
- https://askubuntu.com/questions/21586/
- 제프 레인(2014-03-28). plainbox-secure-policy가 ssh에서 작동하지 않습니다. 버그 #1299201. 발사대. 우분투.
답변2
아니요, 네트워크 연결을 끊지 않는 한(또는 연결을 끊으면 자동으로 다시 설정되므로 까다롭습니다). 명령은 본질적으로 어떤 인터페이스를 통해 실행되는지 상관하지 않습니다.
그러나 SSH 세션은 콘솔 세션보다 더 적은 권한을 가질 수 있습니다. 이 경우 뭔가 있을 수 있습니다.가능한원칙적으로 SSH 세션을 통해 이루어지지만 그렇지 않음인정 받은특정 SSH 세션 또는 특정 구성에서 열린 모든 SSH 세션.
콘솔에 로그인하면 분명히 콘솔 상호 작용과 관련된 일부 권한이 부여됩니다. 전통적으로 이는 최종 장치(키보드 및 모니터)와 상호 작용할 수 있는 권한이 있음을 의미했습니다. 최신 시스템은 이동식 장치 마운트, 기타 주변 장치(예: 오디오 장치) 액세스, 일시 중지 또는 재시작 시작 등과 같은 추가 권한을 콘솔 로그인과 함께 묶는 경우가 많습니다. 최신 Linux 시스템 사용법폴킷이러한 이유로,콘솔 툴킷또는 systemd의 로그인을 통해 어떤 사용자가 활성 콘솔 세션을 가지고 있는지 추적할 수 있습니다.
전통적으로 슈퍼유저(루트)는 모든 권한을 가집니다. 모든 권한은 모두를 의미하며 루트가 SSH를 통해 로그인했는지 아니면 콘솔을 통해 로그인했는지는 중요하지 않습니다. SSH를 통해 직접 루트 로그인을 비활성화하는 것이 일반적이지만 이는 시스템 구성에 따라 다릅니다. 대부분의 Unix 시스템의 기본 구성에서는 su
SSH 세션을 통해 루트 계정에 액세스 할 수 있지만 sudo
이 기능은 다음을 통해 비활성화할 수 있습니다.
pam_securetty.
최신 Unix 시스템은 루트 계정을 제한할 수 있습니다.SELinux. 강화된 시스템에서는 SSH를 통한 루트 세션을 허용할 수 있지만 콘솔 로그인에는 적용되지 않는 방식으로 제한할 수 있습니다. 다시 말하지만 이는 SELinux 정책과 같은 구성 문제일 수 있습니다.