일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 대항해시대
- webhard
- Backup(Restore)
- Disk Partition
- game
- Network Info(Tool)
- Programming
- FTP
- portable
- Command
- Update
- program
- Linux
- H/W
- UNIX
- script
- apm
- Windows 10
- PC
- javascript
- MS windows
- OS(operating system)
- Crack(Serial Key)
- SSH
- MS Windows PE
- network
- calculator
- LiveCD(USB)
- web
- explorer
- Today
- Total
<In Story>
우분투 ssh/rsa, sftp 설정 // [OS] [Linux] [Ubuntu] [FTP] [Network] 본문
우분투 ssh/rsa, sftp 설정 // [OS] [Linux] [Ubuntu] [FTP] [Network]
<In Story, Hi story, History> 2015. 5. 5. 11:27우분투 12.04 설치시 SSH를 설치했다면 바로 설정하면 된다.
설치하지 않았다면 아래와 같이 설치한다.
sudo apt-get install ssh-server
( 서버용이니 클라이언트는 필요없다. )
SSH 설정
sudo vi /etc/ssh/sshd_config
# 포트설정
Port 22
# 자동로그인파일무시
IgnoreRhosts yes
# root로그인금지
PermitRootLogin no
# sudo(관리자)그룹만로그인가능( 다른유저들도 ssh로그인을 가능하게 하려면 이부분 삭제 )
AllowGroups sudo
접기
- AllowGroups : 여기에 등록된 group만 접속 가능함
- AllowUsers : 이곳에 등록된 계정만 접속 가능함
- DenyGroups : 모두 접속이 허용, 여기에 등록된 group만 접속 거부됨
- DenyUsers : 모두 접속이 허용, 여기에 등록된 계정만 접속 거부됨
예1) test1 와 test2 만 ssh 접속을 허용 space bar로 구분)
AllowUsers test1 test2
예2) 모든 유저의 접속을 허락하고 help 라는 유저의 접속을 막는다.
DenyUsers help
접기
접기
sudo useradd -G sudo 사용자ID
혹은sudo vi /etc/group
sudo 에 직접 사용할 ID 추가접기
SFTP 설정
SSH서버를 사용하면 SSH를 이용한 FTP(SFTP)도 사용할 수 있다. 개인이 혼자 사용하는 서버라면 별다른 설정없이 기존의 계정으로 SFTP를 사용할 수 있고 다른 사용자들과 함께 사용하기 위해서는 SFTP를 chroot 하에 설정하여 사용할 수 있다.
SFTP 사용법
접속
sftp 사용자ID@호스트명
SFTP 명령어
- get : 다운로드
- mget : 다수의 파일을 다운로드
- put : 업로드
- mput : 다수의 파일을 업로드
- ls : 접속한 SFTP의 파일 목록 출력
- !ls : 로컬 서버의 파일 목록 출력
- !{명령어} : 로컬 서버에서 실행
접기
- 일반 탭의 호스트명 입력
- 포트는 22
- 로그인 유형 일반
- 사용자 ID 입력
- 비밀번호 입력
사이트관리자 > 고급탭
- 기본 리모트 디렉토리에서 원하는 위치지정(ex. /var/www , 정하지 않으면 기본값이 사용자 홈디렉토리)
접기
SFTP chroot 설정
정확한 설정법은 아직 모르겠다. 아래의 내용은 성공한 구성은 아니다. 참고만 하길...
1. SFTP 사용자들을 위한 전용 그룹 생성
sudo groupadd sftpusers
2. SFTP 사용자 추가
사용자 tiffiny의 로그인그룹을 sftpusers로 지정하고 shell 로그인이 불가능한 nologin 지정
sudo useradd -G sftpusers -s /sbin/nologin tiffiny
3. 패스워드 입력
sudo passwd tiffiny
우분투 12.04 에서는 /etc/default/useradd 의 설정내용이 SHELL 을 제외한 다른 부분들이 모두 주석처리 되어 있다. 그래서 인지 사용자를 추가해도 홈디렉토리및 기타파일들이 생성되지 않는다. 불필요한 파일들이 생성되지 않는 것은 좋으나 이것때문에 잠시 또 삽질을 하게 되었다.
4. 사용자 홈디렉토리 생성
sudo mkdir /home/tiffiny
5. 소유권설정 및 권한설정
우선 tiffiny 디렉토리 이하에 생성될 파일들에 대한 소유권을 위와 같이 설정
sudo chown -R tiffiny.sftpusers /home/tiffiny
각 사용자들의 홈 디렉토리 자체는 소유자 및 소유그룹이 모두 root여야 한다
sudo chown root.root /home/tiffiny
6. SSH 설정
sudo vi /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
위의 설정대로 해보았는데 안된다... 왜일까?
그 밖의 설정방법을 링크한다. > Centos SFTP설정
RSA key를 이용한 로그인
일반 패스워드를 사용하는 로그인 방식보다 rsa 키를 이용한 접속이 보다 보안에 좋다. 그리고 일단 한번 설정해 놓으면 편하다.
우선 ssh 서버설정에서 rsa키 사용에 대한 설정이 제대로인지 살펴본다.
sudo vi /etc/ssh/sshd_config
PubkeyAuthentication yes
RSAAuthentication yes
접기
클라이언트에서 해야할일
아래의 명령어들을 실행한다.
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
명령어 실행후 나오는 다이얼로그들 중에 rsa에 암호를 걸 수 있으나 필요치 않으면 엔터로 기본값 사용으로 넘길수 있다.~/.ssh 디렉토리 밑에 id_rsa 와 id_rsa.pub 이 생성되었다면 성공
서버로 id_rsa.pub을 전송
scp ~/.ssh/id_rsa.pub 사용자ID@호스트명:id_rsa.pub
서버에서 할일
mkdir ~/.ssh
chmod 700 ~/.ssh
전송된 id_rsa.pub을 설정
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
권한은 아래와 같이 클라이언트와 서버 모두 설정한다.chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_host
접기
접기
putty rsa 설정법 <-- 링크로 대체
xshell 을 이용한 방법
1.도구 > 사용자 키 생성 마법사 > 아래항목 셋팅 > 다음- 키 유형 : RSA
( ssh1 프로토콜은 RSA 키만을 지원하고, ssh2 프로토콜은 RSA와 DSA 모두 지원, 서버에맞게 선택 )
- 키 길이 : 1024
( 키 길이가 길면 보다 안전하고, 짧으면 처리 속도가 빨라집니다. 일반적인 경우 1024 비트가 적당함 )
2. 키 생성이 성공적으로 끝남 > 다음
3. 생성된 키에 암호를 걸경우 암호를 입력 > 다음
4. 공개 키 등록 > 파일로 저장
- 공개키 형식 : 대부분의 서버가 SSH2-OpenSSH 를 사용하니 그것을 선택
5. 서버에 등록
- 공개키를 ~/.ssh/authorized_keys2 파일에 복사해 넣음( .ssh 디렉토리가 없다면 생성, 권한 700 )
6. 권한 변경
chmod 664 ~/.ssh/authorized_keys2
xshell 쪽에서는 authorized_keys2 로 파일을 생성하도록 하고 있는데 표준방식은 authorized_keys 에 작성하는 것이다. 변경해도 따로 문제가 없이 잘 작동하고 있다.접기
authorized_keys 와 authorized_keys2 두개가 등장하여 구글링해보니 과거 OpenSSH 3.0 이하에서 authorized_keys2 존재를 발견할수 있었다. OpenSSH 쪽에서는 현재 모든 키를 authorized_keys 에 키를 작성하도록 하고 있으며 authorized_keys2는 단지 과거의 방식에 대한 대체수단일뿐 이며 이는 언제든지 지원하지 않을 수 있다는 것이다.
개인키는 클라이언트쪽에서 생성하고 서버쪽으로 공개키만을 전송하는 것이 보안상 좋다.
참고 : http://marc.info/?l=openssh-unix-dev&m=100508718416162&w=2
'OS(operating system) > Unix, Linux' 카테고리의 다른 글
리눅스 관리자가 알아두어야할 50가지 // [OS] [Linux] [Web] [Network] [Command] (0) | 2015.05.26 |
---|---|
/bin/false, /sbin/nologin 의 차이점 // [OS] [Linux] [Command] (0) | 2015.05.17 |
리눅스 디스크 관리 fdisk 사용법2 // [OS] [Linux] [Command] [Disk Partition] (0) | 2015.05.05 |
리눅스 디스크 관리 fdisk 사용법 // [OS] [Linux] [Command] [Disk Partition] (0) | 2015.05.05 |
리눅스에서 NTFS 포맷하기 // [OS] [Linux] [Command] [Program] [Disk Partition] (0) | 2015.05.05 |
리눅스 계정 관리 명령어(adduser, usermod, userdel) // [OS] [Linux] [Command] (0) | 2015.05.05 |
useradd와 adduser의 차이점 // [OS] [Linux] [Command] (0) | 2015.05.05 |
Linux Debian Download // [OS] [Linux] (0) | 2015.04.30 |
데비안 웹서버 구축 3부 - SVN (Subversion) 설치 및 설정 // [OS] [Linux] [Debian] [Web] [Network] (0) | 2015.04.04 |
데비안 웹서버 구축 2부 - (Smarty OR Template_) 설치 및 설정 // [OS] [Linux] [Debian] [Web] [Network] (0) | 2015.04.04 |