2016-11-07 13 views
1

防止一些SFTP GUI應用程序,我有我的Ubuntu服務器上運行的.bashrc文件.bashrc文件從登錄到VM

red="\[\033[0;31m\]" 
white="\[\033[1;37m\]" 

toilet --gay -f mini " RSM PRODUCTION "; 
export PS1="$white┌──[$red\[email protected]$red\h$white]──$white[$red\w$white] \n└── $white" 

#================================ 
#   Alias    = 
#================================ 

alias L='ls -a -lrt' 
alias l='ls -CF' 
alias install='sudo apt-get install' 
alias update='sudo apt-get update' 
alias upgrade='sudo apt-get -u upgrade' 
alias agi='sudo apt-get install' 
alias agu='sudo apt-get update' 
alias agg='sudo apt-get -u upgrade' 

# personal aliases 
alias ls='ls -hF --color' # add colors for filetype recognition 
alias lx='ls -lXB'  # sort by extension 
alias lk='ls -lSr'  # sort by size 
alias la='ls -Al'  # show hidden files 
alias lr='ls -lR'  # recursice ls 
alias lt='ls -ltr'  # sort by date 
alias lm='ls -al |more'  # pipe through 'more' 
alias ll='ls -l'  # long listing 
alias lsize='ls --sort=size -lhr' # list by size 
alias lsd='ls -l | grep "^d"' #list only directories 
alias lalf='ls -alF' 
alias acyl='cd ~/.icons/ACYL_Icon_Theme_0.9.3/ && bash AnyColorYouLike' 
alias reboot='sudo shutdown -r now' 
alias shutdown='sudo shutdown -h now' 

#Command substitution 
alias h='history | grep $1' 
alias rm='rm -i' 
alias cp='cp -v -i' 
alias mv='mv -i' 
alias which='type -all' 
alias ..='cd ..' 

#Bookmark Directory 
alias dir_='cd /home/forge/rsm' 

alias nginx_='cd /etc/nginx' 
alias .ssh_='cd /root/.ssh' 
alias ssh_='cd /etc/ssh' 
alias root_='cd /root' 
alias site_='cd /etc/nginx/sites-available' 
alias bin_='cd /usr/local/bin' 

dir_; 

我可以登錄到我的虛擬機通過SSH完美的罰款。

我不知道爲什麼在某些SFTP客戶端(GUI應用程序),如Cyberduck,阻止我登錄到我的虛擬機。但是,當刪除我的.bashrc或停用它,它工作正常。


問題

是否有這背後的一個主要原因?

究竟是什麼在我的.bashrc,我不應該這樣做?

如何去解決這個問題?


我打開此時的任何建議。

任何提示/建議/對此的幫助將非常感謝!

+0

嘗試僅僅刪除'toilet'線。它可能會混淆網絡釣魚。 –

回答

1

您的bashrc文件可能會向stdout輸出東西,某些SFTP程序可能會嘗試將其解釋爲SFTP命令,從而導致連接或身份驗證失敗。

你應該確保你的bashrc文件只適用於使用those two techniques一個互動環節:

  • 無論是測試的PS1值(你當然分配之前)將不會對非交互式會話設置,或
  • 測試是否$-包含i;這隻會發生在互動會議上。

所以你的腳本看起來像:

if [[ $- == *i* ]]; then 
red="\[\033[0;31m\]" 
white="\[\033[1;37m\]" 

toilet --gay -f mini " RSM PRODUCTION "; 
export PS1="$white┌──[$red\[email protected]$red\h$white]──$white[$red\w$white] \n└── $white" 
[...] 
fi 
1

調試的最佳方法是將每行(或多行)添加到空的.bashrc並嘗試每次登錄。最終你會添加一行代碼並且無法登錄,所以有問題的命令在這個塊中。

我的直覺是toilet命令是以某種方式與你的gui工具搞混了。